首页 > 解决方案 > 在 python 中,如何为其中一列中列表的每个元素创建单独的行?

问题描述

尝试 #2 正确编写此内容,这是我的数据集的样子,您可以在下面看到我想要的输出。

实现我想要的输出的最佳方法是什么?

数据集

    Name   Position                                               Scores
0      Jim      G                                                 [5, 6]
1     Bill     SG                                                    NaN
2      Tim     PG                                               [19, 22]
3      Bob     SF                                                 [2, 3]

期望的输出

     Name   Position                                               Scores
0      Jim      G                                                 5
1      Jim      G                                                 6
2     Bill     SG                                                 NaN
3      Tim     PG                                                 19
3      Tim     PG                                                 22
.....

标签: pythonpandas

解决方案


您可以简单地在“点”列上使用 pd.explode。

    import pandas as pd
    
    data = {}
    data['Teams'] = ['SF', 'NY', 'SEA']
    data['Players'] = ['Jim', 'Joe', 'Bob']
    jim_points = [3,10, 15, 6, 30]
    joe_points = [10, 12, 15, 23, 3, 4, 5, 6,7]
    bob_points = [3,4,5,6,7,8,12,8,9,9,9,9,22,22,2222]
    data['Points'] = [jim_points, joe_points,bob_points ]
    
    df = pd.DataFrame(data)
    print(df)
    
    df = df.explode('Points')
    print(df)

## Input

  Teams Players                                             Points
0    SF     Jim                                 [3, 10, 15, 6, 30]
1    NY     Joe                    [10, 12, 15, 23, 3, 4, 5, 6, 7]
2   SEA     Bob  [3, 4, 5, 6, 7, 8, 12, 8, 9, 9, 9, 9, 22, 22, ...

## Output
  Teams Players Points
0    SF     Jim      3
0    SF     Jim     10
0    SF     Jim     15
0    SF     Jim      6
0    SF     Jim     30
1    NY     Joe     10
1    NY     Joe     12
1    NY     Joe     15
1    NY     Joe     23
1    NY     Joe      3
1    NY     Joe      4
1    NY     Joe      5
1    NY     Joe      6
1    NY     Joe      7
2   SEA     Bob      3
2   SEA     Bob      4
2   SEA     Bob      5
2   SEA     Bob      6
2   SEA     Bob      7
2   SEA     Bob      8
2   SEA     Bob     12
2   SEA     Bob      8
2   SEA     Bob      9
2   SEA     Bob      9
2   SEA     Bob      9
2   SEA     Bob      9
2   SEA     Bob     22
2   SEA     Bob     22
2   SEA     Bob   2222

推荐阅读