如何使用pandas

时间:2018-05-14 16:56:41

标签: python pandas dataframe

我想从第二个数据框中的另外两列过滤数据框中的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,但这只能用于比较lists.Thanks提前

1 个答案:

答案 0 :(得分:0)

在列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