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 : vérifiez si la ligne d’un DataFrame existe dans un autre



Vous pouvez utiliser la syntaxe suivante pour ajouter une nouvelle colonne à un DataFrame pandas qui indique si chaque ligne existe dans un autre DataFrame :

#merge two DataFrames on specific columns
all_df = pd.merge(df1, df2, on=['column1', 'column2'], how='left', indicator='exists')

#drop unwanted columns
all_df = all_df.drop('column3', axis=1)

#add column that shows if each row in one DataFrame exists in another
all_df['exists'] = np.where(all_df.exists == 'both', True, False)

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : vérifier si une ligne dans un DataFrame Pandas existe dans un autre

Supposons que nous ayons les deux DataFrames pandas suivants :

import pandas as pd

#create first DataFrame
df1 = pd.DataFrame({'team' : ['A', 'B', 'C', 'D', 'E'], 
                    'points' : [12, 15, 22, 29, 24]}) 

print(df1)

  team  points
0    A      12
1    B      15
2    C      22
3    D      29
4    E      24

#create second DataFrame
df2 = pd.DataFrame({'team' : ['A', 'D', 'F', 'G', 'H'],
                    'points' : [12, 29, 15, 19, 10],
                    'assists' : [4, 7, 7, 10, 12]})

print(df2)

  team  points  assists
0    A      12        4
1    D      29        7
2    F      15        7
3    G      19       10
4    H      10       12

Nous pouvons utiliser la syntaxe suivante pour ajouter une colonne appelée exist au premier DataFrame qui indique si chaque valeur de la colonne équipe et points de chaque ligne existe dans le deuxième DataFrame :

import numpy as np

#merge two dataFrames and add indicator column
all_df = pd.merge(df1, df2, on=['team', 'points'], how='left', indicator='exists')

#drop assists columns
all_df = all_df.drop('assists', axis=1)

#add column to show if each row in first DataFrame exists in second
all_df['exists'] = np.where(all_df.exists == 'both', True, False)

#view updated DataFrame
print (all_df)

  team  points  exists
0    A      12    True
1    B      15   False
2    C      22   False
3    D      29    True
4    E      24   False

La nouvelle colonne existe indique si chaque valeur de la colonne équipe et points de chaque ligne existe dans le deuxième DataFrame.

À partir du résultat, nous pouvons voir :

  • Une valeur d’équipe de A et une valeur de points de 12 existent dans le deuxième DataFrame.
  • Une valeur d’équipe de B et une valeur de points de 15 n’existent pas dans le deuxième DataFrame.
  • Une valeur d’équipe de C et une valeur de points de 22 n’existent pas dans le deuxième DataFrame.
  • Une valeur d’équipe de D et une valeur de points de 29 existent dans le deuxième DataFrame.
  • Une valeur d’équipe de E et une valeur de points de 24 n’existent pas dans le deuxième DataFrame.

Notez également que vous pouvez spécifier des valeurs autres que True et False dans la colonne existe en modifiant les valeurs dans la fonction NumPy Where() .

Par exemple, vous pouvez utiliser à la place « existe » et « n’existe pas » comme suit :

#add column to show if each row in first DataFrame exists in second
all_df['exists'] = np.where(all_df.exists == 'both', 'exists', 'not exists')

#view updated DataFrame
print (all_df)

  team  points      exists
0    A      12      exists
1    B      15  not exists
2    C      22  not exists
3    D      29      exists
4    E      24  not exists

Notez que les valeurs de la colonne existe ont été modifiées.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Pandas : ajouter une colonne d’un DataFrame à un autre
Pandas : obtenez des lignes qui ne se trouvent pas dans un autre DataFrame
Pandas : comment vérifier si plusieurs colonnes sont égales

Ajouter un commentaire

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