繁体   English   中英

如何使用Pandas通过索引获取两个csv之间的差异

[英]How to get the difference between two csv by Index using Pandas

需要获取2个csv文件之间的差异,杀死重复项和Nan字段。 cite_id框架

df帧

我正在尝试这一方法,但是它将它们加在一起而不是减去。

df1 = pd.concat([df,cite_id]).drop_duplicates(keep=False)[['id','website']]

df是主数据帧cite_id是必须减去的数据帧。

import pandas as pd
df1 = pd.read_csv("1.csv")
df2 = pd.read_csv("2.csv")
df1 = df1.dropna().drop_duplicates()
df2 = df2.dropna().drop_duplicates()
df = df2.loc[~df2.id.isin(df1.id)]

您可以使用“ isin”有效地完成此操作

df.dropna().drop_duplicates()
cite_id.dropna().drop_duplicates()
df[~df.id.isin(cite_id.id.values)]

或者,您可以合并它们并仅保留具有NaN的行

df[pd.merge(cite_id, df, how='outer').isnull().any(axis=1)]

您可以将两个数据帧连接为一个,然后删除所有重复项

df1 

    ID  B   C   D
0   A0  B0  C0  D0
1   A1  B1  C1  D1
2   A2  B2  C2  D2
3   A3  B3  C3  D3

cite_id
    ID  B   C   D
4   A2  B4  C4  D4
5   A3  B5  C5  D5
6   A6  B6  C6  D6
7   A7  B7  C7  D7

pd.concat([df1,cite_id]).drop_duplicates(subset=['ID'], keep=False)

出:

    ID  B   C   D
0   A0  B0  C0  D0
1   A1  B1  C1  D1
6   A6  B6  C6  D6
7   A7  B7  C7  D7

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM