熊猫将DataFrame中多个列中的列表转换为单独的列

时间:2018-11-22 15:08:46

标签: pandas dataframe apply

我正在尝试将pandas DataFrame的多个列中的列表转换为单独的列。

说,我有一个这样的数据框:

           0          1
0  [1, 2, 3]  [4, 5, 6]
1  [1, 2, 3]  [4, 5, 6]
2  [1, 2, 3]  [4, 5, 6]

并希望将其转换为如下形式:

   0  1  2  0  1  2
0  1  2  3  4  5  6
1  1  2  3  4  5  6
2  1  2  3  4  5  6

我设法做到了循环。但是,我想用更少的行来做到这一点。 到目前为止,我的代码段如下:

import pandas as pd

df = pd.DataFrame([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
output1 = df[0].apply(pd.Series)
output2 = df[1].apply(pd.Series)

output = pd.concat([output1, output2], axis=1)

2 个答案:

答案 0 :(得分:2)

如果您不在乎列名,可以这样做:

>>> df.apply(np.hstack, axis=1).apply(pd.Series)
   0  1  2  3  4  5
0  1  2  3  4  5  6
1  1  2  3  4  5  6
2  1  2  3  4  5  6

答案 1 :(得分:1)

使用sum

pd.DataFrame(df.sum(1).tolist())
   0  1  2  3  4  5
0  1  2  3  4  5  6
1  1  2  3  4  5  6
2  1  2  3  4  5  6