Pandas:在某列合并两个DataFrame,但只保留不同列的数据

1 投票
1 回答
766 浏览
提问于 2025-04-17 16:25

我有两个数据框: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

撰写回答