【问题标题】:How to filter dataframe by values from columns in other dataframe thats different size in python?如何通过python中不同大小的其他数据框中的列中的值过滤数据框?
【发布时间】:2021-08-17 11:14:23
【问题描述】:

嘿,我正在尝试按“货币”和“类型”列中数据框 df1 中的值过滤数据框 df2。

df1:

Currency   Type   Amount

USD        Buy    13003,00
EUR        Sell   920,00

df2:

Currency   Type   Amount
USD        Buy    21414,00
USD        Sell   56236,00
USD        Sell   15151,00
PLN        Buy    1235,00
EUR        Sell   951,00
EUR        Buy    1451,00
EUR        Buy    961,00

我想过滤 df2,以便它会删除 df1 中具有相同货币和相反类型的行。我希望得到这样的结果:

Currency   Type   Amount
USD        Sell   56236,00
USD        Sell   15151,00
EUR        Buy    1451,00
EUR        Buy    961,00

【问题讨论】:

    标签: python pandas dataframe filter series


    【解决方案1】:

    一种方法(虽然我不确定它是否最简单):

    df3 = pd.merge(df2, df1[['Currency', 'Type']], how='left', on=['Currency']).dropna()
    df3 = df3[df3['Type_x'] != df3['Type_y']]
    del df3['Type_y']
    

    最后,如果需要,您可以将列重命名为“Type_x”。

    【讨论】:

    • 很高兴听到。如果您将我的回答标记为正确答案,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    相关资源
    最近更新 更多