将一个数据框与另一个数据框与熊猫进行比较

时间:2019-09-25 23:13:14

标签: python pandas dataframe

下午好,

我想将“新”数据框与“旧”数据框进行比较,以获取一个新数据框,其中包含“新”中仅有但不存在旧数据的数据。例如

New  Old  Desired Output
---  ---  --------------
1    1    4 
3    2    7
4    3
5    5
7    8
8    9
9    0

我一开始所做的事情(原谅我,我是新来的)是

df = pd.concat([new, old])
final = pd.DataFrame(df.iloc[:,0].unique())

我没意识到的是,“旧”中的值可能不在“新”中,按照我的代码,这些值也将显示在“最终”中,我没有想要。

如果任何人都可以指出正确的方向,我们将不胜感激!

1 个答案:

答案 0 :(得分:1)

此处使用set()将有助于在New中而不是Old中提供值。然后根据结果列表进行过滤。

df1 = pd.DataFrame(data=[1,2,3,4,5,7,8,9], columns=['New'])
df2 = pd.DataFrame(data=[1,2,3,5,8,9,0], columns=['Old'])

df1_unique = set(df1['New']) - set(df2['Old'])
final_df= df1[df1['New'].isin(df1_unique)]
final_df.rename(columns = {'New' : 'Desired Output'}, inplace=True)
print(final_df)