【问题标题】:How to get the difference between two DataFrames [duplicate]如何获得两个DataFrame之间的差异[重复]
【发布时间】: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]

【问题讨论】:

    标签: python pandas


    【解决方案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 的方法。

    【讨论】:

      猜你喜欢
      • 2016-07-12
      • 2014-05-14
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      相关资源
      最近更新 更多