【问题标题】:Pandas : Merge two Dataframes on a column, but keep only data for unlike ColumnsPandas:合并列上的两个数据框,但只保留不同列的数据
【发布时间】:2013-02-04 18:44:37
【问题描述】:

我有 2 个数据帧: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 值。所以,在这个例子中,我想要一个没有 row 2, cid 531 的 frame3,它是 frame2,它与 frame1 共享。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    怎么样:

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

    【讨论】:

      猜你喜欢
      • 2018-12-10
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 2021-09-14
      相关资源
      最近更新 更多