Python 有没有办法在数据帧中取消嵌套列表列?

Python 有没有办法在数据帧中取消嵌套列表列?,python,pandas,Python,Pandas,我有一个数据框,其中一列是列表。我想把这个列表扩展成4列 df=pd.DataFrame({'A':[1,2],'B':[[1,2,3,4],[1,2,5,8]]}) df Out[458]: A B 0 1 [1, 2, 3, 4] 1 2 [1, 2, 5, 8] 我希望这是: A C_1 C_2 C_3 C_4 0 1 1 2 3 4 1 2 1 2 5 8 如果所有列表的长度相同,则可以执行以下操作: df[['A

我有一个数据框,其中一列是列表。我想把这个列表扩展成4列

df=pd.DataFrame({'A':[1,2],'B':[[1,2,3,4],[1,2,5,8]]})
df
Out[458]: 
   A  B
0  1  [1, 2, 3, 4]
1  2  [1, 2, 5, 8]
我希望这是:

   A  C_1  C_2  C_3 C_4
0  1  1    2    3   4
1  2  1    2    5   8

如果所有列表的长度相同,则可以执行以下操作:

df[['A']].join(pd.DataFrame(df['B'].values.tolist(),
                            index=df.index)
                 .add_prefix('C_')
              )
输出:

   A  C_0  C_1
0  1    1    2
1  2    1    2

您还可以使用字符串方法来提取数据,假设列
B
中的每一行的长度相同:

mapping ={f"C_{num+1}" : df.B.str[num] 
          for num in range(df.B.str.len()[0])
          }

df.drop(columns="B").assign(**mapping)

   A  C_1  C_2  C_3  C_4
0  1    1    2    3    4
1  2    1    2    5    8