Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Pandas : comment fusionner les valeurs de plusieurs colonnes en une seule



Vous pouvez utiliser les méthodes suivantes pour regrouper les valeurs de plusieurs colonnes d’un DataFrame pandas en une seule colonne :

Méthode 1 : fusionner les valeurs par ordre de colonne par défaut

df['coalesce'] = df.bfill(axis=1).iloc[:, 0]

Méthode 2 : fusionner les valeurs en utilisant un ordre de colonne spécifique

df['coalesce'] = df[['col3', 'col1', 'col2']].bfill(axis=1).iloc[:, 0]

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'points': [np.nan, np.nan, 19, np.nan, 14],
                   'assists': [np.nan, 7, 7, 9, np.nan],
                   'rebounds': [3, 4, np.nan, np.nan, 6]})

#view DataFrame
print(df)

   points  assists  rebounds
0     NaN      NaN       3.0
1     NaN      7.0       4.0
2    19.0      7.0       NaN
3     NaN      9.0       NaN
4    14.0      NaN       6.0

Méthode 1 : fusionner les valeurs par ordre de colonne par défaut

Le code suivant montre comment fusionner les valeurs des colonnes de points, d’assistance et de rebonds en une seule colonne, en utilisant la première valeur non nulle des trois colonnes comme valeur fusionnée :

#create new column that contains first non-null value from three existing columns 
df['coalesce'] = df.bfill(axis=1).iloc[:, 0]

#view updated DataFrame
print(df)

   points  assists  rebounds  coalesce
0     NaN      NaN       3.0       3.0
1     NaN      7.0       4.0       7.0
2    19.0      7.0       NaN      19.0
3     NaN      9.0       NaN       9.0
4    14.0      NaN       6.0      14.0

Voici comment la valeur dans la colonne de fusion a été choisie :

  • Première ligne : la première valeur non nulle était 3.0 .
  • Deuxième ligne : la première valeur non nulle était 7.0 .
  • Troisième ligne : la première valeur non nulle était 19.0 .
  • Quatrième ligne : la première valeur non nulle était 9.0 .
  • Cinquième ligne : la première valeur non nulle était 14.0 .

Méthode 2 : fusionner les valeurs en utilisant un ordre de colonne spécifique

Le code suivant montre comment fusionner les valeurs dans les trois colonnes en analysant les colonnes dans l’ordre suivant : passes décisives, rebonds, points.

#coalesce values in specific column order
df['coalesce'] = df[['assists', 'rebounds', 'points']].bfill(axis=1).iloc[:, 0]

#view updated DataFrame
print(df)

   points  assists  rebounds  coalesce
0     NaN      NaN       3.0       3.0
1     NaN      7.0       4.0       7.0
2    19.0      7.0       NaN       7.0
3     NaN      9.0       NaN       9.0
4    14.0      NaN       6.0       6.0

Voici la logique qui a été utilisée pour décider quelle valeur placer dans la colonne de fusion :

  • Si la valeur dans la colonne d’assistance n’est pas nulle, utilisez cette valeur.
  • Sinon, si la valeur dans la colonne des rebonds n’est pas nulle, utilisez cette valeur.
  • Sinon, si la valeur dans la colonne des points n’est pas nulle, utilisez cette valeur.

Remarque : Vous pouvez trouver la documentation complète de la fonction bfill() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment combiner deux colonnes dans Pandas
Comment additionner des colonnes spécifiques dans Pandas
Comment trier par plusieurs colonnes dans Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *