【问题标题】:Join a Pandas dataframe with dataframe of lists使用列表数据框加入 Pandas 数据框
【发布时间】:2018-08-04 22:40:44
【问题描述】:

如下图所示,我有两个要合并的熊猫数据框。 第一个包含大量产品的信息。第二个保存产品的类别信息,其中类别列中的每个条目都是一个列表。

   CatId   Date           CatId      CatName
0     C2   01-15       0     C1   [crime, alt]
1     C1   01-15       1     C2   [crime, bests]
2     C1   01-15       2     C3   [fantasy, american]
3     C3   01-16       
.
.
n     C2   02-17

我对以下数据框感兴趣:

      CatId             Date           
0  [crime, bests]       01-15      
1  [crime, alt]         01-15      
2  [crime, alt]         01-15      
3  [fantasy, american]  01-16       
.
.
n  [crime, bests]       02-17

为了提高效率(由于数据集的大小),我尽量避免循环。

在 Python 中可以吗?

【问题讨论】:

    标签: python pandas dataframe join spyder


    【解决方案1】:

    我相信您需要map by set_index 创建的系列:

    print (df1)
      CatId   Date
    0    C2  01-15
    1    C1  01-15
    2    C1  01-15
    3    C3  01-16
    n    C2  02-17
    
    print (df2)
    
      CatId              CatName
    0    C1         [crime, alt]
    1    C2       [crime, bests]
    2    C3  [fantasy, american]
    
    df1['CatId'] = df1['CatId'].map(df2.set_index('CatId')['CatName'])
    print (df1)
                     CatId   Date
    0       [crime, bests]  01-15
    1         [crime, alt]  01-15
    2         [crime, alt]  01-15
    3  [fantasy, american]  01-16
    n       [crime, bests]  02-17
    

    【讨论】:

    • 工作完美,杰兹瑞尔。非常感谢
    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2015-04-22
    • 2018-02-05
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多