2013-02-19 102 views
1

我有2个DataFrames:帧1和帧2熊猫:合并两个Dataframes在列,但只保留数据不像列

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 

帧1有60888行,帧2有139846行。

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

回答

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