Pandas:在某列合并两个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 行数据。
我想用这两个数据框创建一个第三个数据框,这个新数据框基本上是 frame2,但把它和 frame1 共有的所有 cid 值都去掉。所以在这个例子中,我想要的 frame3 是 frame2,但去掉了第 2 行,cid 为 531的那一行,因为它在 frame1 中也存在。
1 个回答
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