如何在Python中将一系列列表转换为数据帧?

Bra*_*avo 5 python series dataframe pandas

我有以下格式的数据框

student   marks
a         [12,12,34]
b         [34,35]
c         [23,45,23]
Run Code Online (Sandbox Code Playgroud)

我希望它转换为如下所示

student marks_1  marks_2 marks_3
a       12        12      34
b       34        35      Nan
c       23        45      23
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?请提供任何帮助

jez*_*ael 5

使用由提取的列创建的join新值,转换为列表并通过自定义函数用于列:DataFramemarkspoprenamelambda

f = lambda x: 'marks_{}'.format(x + 1)
df = df.join(pd.DataFrame(df.pop('marks').values.tolist()).rename(columns=f))
print (df)
  student  marks_1  marks_2  marks_3
0       a       12       12     34.0
1       b       34       35      NaN
2       c       23       45     23.0
Run Code Online (Sandbox Code Playgroud)

细节

print (pd.DataFrame(df.pop('marks').values.tolist()))
    0   1     2
0  12  12  34.0
1  34  35   NaN
2  23  45  23.0
Run Code Online (Sandbox Code Playgroud)

  • 据我所知,这里重要的一步是“new_df = pd.DataFrame(df['marks'].tolist())”。“pop”调用只是在使用后删除旧列,我认为您可以跳过“.values”步骤。感谢您的回答! (2认同)