如何获得两个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之间的差异[重复]的主要内容,如果未能解决你的问题,请参考以下文章