有没有办法在熊猫数据框中取消嵌套列表列?

时间:2021-03-03 00:15:32

标签: 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

2 个答案:

答案 0 :(得分:1)

如果所有列表的长度相同,您可以这样做:

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

答案 1 :(得分:0)

您还可以使用 Pandas 字符串方法来提取数据,假设列 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