Pandas:在列上合并两个Dataframe,但仅保留不同列的数据

时间:2013-02-19 22:07:25

标签: python pandas

我有2个DataFrame:frame1和frame2

In [10]: frame1[:5]
Out[10]:
    cid
0   531
1  1102
2  1103
3  1406
4  1409

In [14]: frame2[:5]
Out[14]:
     cid   media_cost     imps  booked_revenue
0  72692    29.671446    13918       84.961853
1  72704  3121.781201  6992946     9912.982516
2    531     0.001540        2        0.000000
3  39964  2307.119001  3997167     5425.629736
4  72736    45.716847   143574       56.280000

frame1有60,888行,frame2有139,846行。

使用这两个Dataframe,我想创建一个第三个Dataframe,它基本上由frame2组成,并删除了与frame1共享的所有cid值。所以,在这个例子中,我想要一个frame3,它是frame2,没有第2行,cid 531,,它与frame1共享。

1 个答案:

答案 0 :(得分:3)

怎么样:

>>> f1
    cid
0   531
1  1102
2  1103
3  1406
4  1409
>>> f2
     cid   media_cost     imps  booked_revenue
0  72692    29.671446    13918       84.961853
1  72704  3121.781201  6992946     9912.982516
2    531     0.001540        2        0.000000
3  39964  2307.119001  3997167     5425.629736
4  72736    45.716847   143574       56.280000
>>> f2[~f2.cid.isin(f1.cid)]
     cid   media_cost     imps  booked_revenue
0  72692    29.671446    13918       84.961853
1  72704  3121.781201  6992946     9912.982516
3  39964  2307.119001  3997167     5425.629736
4  72736    45.716847   143574       56.280000