使用python删除2个不同文件中的重复行

2024-05-16 09:17:32 发布

您现在位置:Python中文网/ 问答频道 /正文

早上好! 我正在尝试使用panda从csv文件中删除重复的行。 我有两个文件,A.csv和B.csv 我想删除A中存在于B中的所有行

文件A.csv:

Pedro,10,rojo
Mirta,15,azul 
Jose,5,violeta

文件B.csv:

Pedro,
ignacio,
fernando,
federico,

输出文件Output.csv:

Mirta,15,azul 
Jose,5,violeta

尝试加入文件,然后应用

cat A.csv B.csv > output.csv

并在python中运行此程序:

import pandas as pd

df = pd.read_csv('output.csv')
df.drop_duplicates(inplace=True)
df.to_csv('final.csv', index=False)

Tags: 文件csvdfoutputpandapdjosefernando
2条回答
  1. 导入df_A和df_B中的A.csv和B.csv

  2. 然后,附加df_ab的两个数据帧:

    df_ab = df_a.append(df_b)

  3. 然后查找重复的行:

    df_ab_only_duplicated_values = df_ab[df_ab.duplicated()]

  4. 将df_a附加到df_ab_only_duplicated_值,并删除所有重复的行:

    df_a = df_a.append(df_ab_only_duplicated_values).drop_duplicates(keep=False)

data_A = {'name': ['Pedro','Mirta','Jose'], 'age': [10,15,5]}
data_B = {'name': ['Pedro','ignacio','fernando', 'federico']}

A = pd.DataFrame(data=data_A)
B = pd.DataFrame(data=data_B)
A

    name    age
0   Pedro   10
1   Mirta   15
2   Jose    5

B

    name
0   Pedro
1   ignacio
2   fernando
3   federico

df = pd.merge(A, B, on='name', how='left', indicator=True)
df
    name    age _merge
0   Pedro   10  both
1   Mirta   15  left_only
2   Jose    5   left_only
df  = df[df['_merge'] != 'both']
df

    name    age _merge
1   Mirta   15  left_only
2   Jose    5   left_only
df.drop(columns='_merge', inplace=True)
df
    name    age
1   Mirta   15
2   Jose    5

相关问题 更多 >