【问题标题】:How to filter values of 2 columns in a dataframe from a second dataframe using pandas [duplicate]如何使用熊猫从第二个数据框中过滤数据框中两列的值[重复]
【发布时间】:2018-10-24 09:58:16
【问题描述】:

我想从第二个数据框中的另外 2 列中过滤数据框中的 2 列,这个想法是保留我的索引。将列 X 和 Y 中的每对值作为单个实体处理很重要。举个例子:

原始数据框:

Out[72]: ID X Y 0 1 1 10 1 1 2 23 2 1 50 65 3 2 30 2 4 2 2 5 5 2 6 8 6 3 10 3 7 3 33 6 8 3 4 90

然后,我将“ID”建立为索引:

df.set_index(['ID']) Out[74]: X Y ID
1 1 10 1 2 23 1 50 65 2 30 2 2 2 5 2 6 8 3 10 3 3 33 6 3 4 90

这是第二个数据框:

df2 Out[68]: X Y 0 4 90 1 2 23 2 8 6 3 30 2 4 2 5 5 61 81

想要的输出是:

Out[78]: X Y ID
1 2 23 2 30 2 2 2 5 3 4 90

我使用的是 zipset 但这仅适用于比较列表。提前致谢

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    在 X 和 Y 列上使用 merge,参数 `right_index' 设置为 True:

    df.merge(df2, on=['X', 'Y'], right_index=True)
    

    输出:

         X   Y
    ID        
    1    2  23
    2   30   2
    2    2   5
    3    4  90
    

    【讨论】:

    • 我只是忍不住觉得已经问了这么多合并问题,最好关闭为重复而不是一遍又一遍地回答......你怎么看?跨度>
    • @cᴏʟᴅsᴘᴇᴇᴅ 当然...我怀疑许多新用户不知道要查看合并。我喜欢向他们展示如何直接回答他们的问题,但请随时关闭此问题并将其标记为欺骗。
    • 这对我有用
    • @JonathanPacheco 很高兴,我能帮上忙。编码愉快。
    猜你喜欢
    • 2021-04-05
    • 2021-12-30
    • 2014-02-25
    • 2017-04-22
    • 2016-08-31
    • 1970-01-01
    • 2020-06-08
    • 2020-08-08
    • 2020-08-16
    相关资源
    最近更新 更多