如何获得两个DataFrame之间的差异[重复]

Posted

技术标签:

【中文标题】如何获得两个DataFrame之间的差异[重复]【英文标题】:How to get the difference between two DataFrames [duplicate] 【发布时间】:2018-05-19 13:30:40 【问题描述】:

如何获取两个 DataFrame 之间的差异。例如,我有 2 个 DataFrames

previous_asks =  pd.DataFrame('price':[1,2,3], 'amount':[10,20,30])
current_asks = pd.DataFrame('price':[1,2,3,4], 'amount':[11,20,30,40])

我想收到

price':[1, 4], 'amount':[11,40]

【问题讨论】:

【参考方案1】:

使用熊猫:

a1 = list(range(10))
a2 = list(range(5, 8))

b1 = list('abcdefghij')
b2 = list('efy')

df1 =  pd.DataFrame('price':a1, 'amount':b1)
df2 = pd.DataFrame('price':a2, 'amount':b2)

dict_results = dict()
for col in df1:
    dict_results[col] = df1.loc[~ df1[col].isin(df2[col].values), col].values
    print('--', col, dict_results[col])

给予:

-- amount ['a' 'b' 'c' 'd' 'g' 'h' 'i' 'j']
-- price [0 1 2 3 4 8 9]

使用 python3:

set1 = set(a1)
set2 = set(a2)
print(set1 - set2)

给予:

0, 1, 2, 3, 4, 8, 9

我宁愿在这里使用 python3,因为我认为它更简单/可读。 如果您最初拥有 pandas 数据框,我会将其转换为 set 数据 输入,操作它们并在必要时恢复到pd.Dataframe

还值得一试 unique() pd.Series 的方法。

【讨论】:

以上是关于如何获得两个DataFrame之间的差异[重复]的主要内容,如果未能解决你的问题,请参考以下文章

%b %d %Y 格式的两个日期之间的差异

计算两个日期之间的差异并获得年值? [复制]

找出具有相同形状的两个DataFrame之间的差异

Pyspark DataFrame:查找两个 DataFrame 之间的差异(值和列名)

获取两个存储库之间的差异

如何获得两个日期之间的差异(informix)?