Maison >développement back-end >Tutoriel Python >Comment trouver des lignes dans un DataFrame Pandas qui ne se trouvent pas dans un autre ?

Comment trouver des lignes dans un DataFrame Pandas qui ne se trouvent pas dans un autre ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 07:59:11905parcourir

How to Find Rows in One Pandas DataFrame That Are Not in Another?

Obtention de lignes de DataFrame non présentes dans un autre DataFrame

Pour obtenir des lignes d'un DataFrame (df1) qui ne sont pas présentes dans un autre DataFrame (df2 ), les étapes suivantes peuvent être exécutées :

import pandas as pd

# Create the two DataFrames.
df1 = pd.DataFrame(data={'col1': [1, 2, 3, 4, 5, 3], 'col2': [10, 11, 12, 13, 14, 10]})
df2 = pd.DataFrame(data={'col1': [1, 2, 3], 'col2': [10, 11, 12]})

# Perform a left join, ensuring each row in df1 joins with a single row in df2.
df_all = df1.merge(df2.drop_duplicates(), on=['col1', 'col2'], how='left', indicator=True)

# Create a boolean condition to identify rows in df1 that are not in df2.
condition = df_all['_merge'] == 'left_only'

# Filter df1 based on the condition.
result = df1[condition]

Cette approche garantit que seules les lignes de df1 qui n'existe pas dans df2 sont extraits en tenant compte des deux valeurs de colonne de chaque ligne. Les solutions alternatives qui vérifient indépendamment les valeurs de colonnes individuelles peuvent conduire à des résultats incorrects.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn