【问题标题】:Append row in pandas dataframe [duplicate]在熊猫数据框中追加行[重复]
【发布时间】:2018-11-05 17:15:19
【问题描述】:

我有一个以下格式的熊猫数据框:

      id                                           category
0  17074820                      [15153999, 15213210, 7668302]
1  15153999   [12721363, 9096352, 10788337, 9114021, 10330360]
2  15213210                               [11466240, 12184798]
3   7668302                                          [1539589]
4  12721363  [9465087, 11842208, 11309498, 9465125, 9990074...

我想在行中添加与列表对应的id值,例如:

      id                         category
0  17074820                      15153999
0  17074820                      15213210
0  17074820                      7668302

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这是numpy 和itertools 的一种解决方案:

    import pandas as pd, numpy as np
    from itertools import chain
    
    df = pd.DataFrame([[17074820, [15153999, 15213210, 7668302]],
                       [15153999, [12721363, 9096352, 10788337, 9114021, 10330360]]],
                      columns=['id', 'category'])
    
    lens = list(map(len, df['category']))
    
    res = pd.DataFrame({'id': np.repeat(df['id'], lens),
                        'category': list(chain.from_iterable(df['category']))})
    
    print(res)
    
       category        id
    0  15153999  17074820
    0  15213210  17074820
    0   7668302  17074820
    1  12721363  15153999
    1   9096352  15153999
    1  10788337  15153999
    1   9114021  15153999
    1  10330360  15153999
    

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 2020-04-21
      • 2021-12-16
      • 1970-01-01
      • 2017-02-21
      • 2018-06-26
      • 2018-04-21
      • 2020-12-23
      相关资源
      最近更新 更多