繁体   English   中英

比较两个数据帧并将差异写入另一个 dataframe

[英]Compare two dataframes and write the differences to another dataframe

我有两个数据框。 df1 和 df2

import pandas as pd

df1 = pd.DataFrame({
'Buyer': ['Carl', 'Alex', 'Lauren'],
'Quantity': [18, 3, 8]})

df2 = pd.DataFrame({
'Buyer': ['Carl', 'Alex', 'Maya', 'Emily'],
'Quantity': [18, 3, 5, 5]})

我想知道是否有办法将 df1 与 df2 和 append 进行比较

df2 = pd.DataFrame({
'Buyer': ['Carl', 'Alex', 'Maya', 'Emily', 'Lauren'],
'Quantity': [18, 3, 5, 5, 8]})

您只需要将两个 dfs 连接起来,然后丢弃 dupes

df2 = pd.concat([df1,df2]).drop_duplicates()

>>> df2
    Buyer  Quantity
0    Carl        18
1    Alex         3
2  Lauren         8
2    Maya         5
3   Emily         5

像你说的那样组合它们( append ),然后做一个重复:

import pandas as pd

df1 = pd.DataFrame({
'Buyer': ['Carl', 'Alex', 'Lauren'],
'Quantity': [18, 3, 8]})

df2 = pd.DataFrame({
'Buyer': ['Carl', 'Alex', 'Maya', 'Emily'],
'Quantity': [18, 3, 5, 5]})

df = df1.append(df2)

df = df.drop_duplicates()

print(df)

output:

    Buyer  Quantity
0    Carl        18
1    Alex         3
2    Maya         5
3   Emily         5
4  Lauren         8

使用merge可以实现。

res = pd.merge(df2,df1,on=['Buyer','Quantity'],how='outer')

output:

Buyer   Quantity
0   Carl    18
1   Alex    3
2   Maya    5
3   Emily   5
4   Lauren  8

暂无
暂无

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

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