如何将包含列表的pandas列转换为dataframe

时间:2018-02-23 21:54:38

标签: pandas

我有一个pandas数据帧。 其中一列包含60个元素的列表,在其行中保持不变。

如何将每个列表转换为新数据帧的一行?

更清楚一点:说A是具有n行的原始数据帧。其中一列包含60个元素的列表。

我需要创建一个新的数据帧nx60。

我的暂定:

def expand(x):
return(pd.DataFrame(np.array(x)).reshape(-1,len(x)))
df["col"].apply(lambda x: expand(x))]

它给出了有趣的结果......

奇怪的是,如果我调用函数"展开"在一个原始的,它完全符合我的期望

expand(df["col"][0])

enter image description here

To ChootsMagoots:Thjis是我尝试应用你的建议时的结果。它不起作用。

enter image description here

2 个答案:

答案 0 :(得分:2)

试试这个:

new_df = pd.DataFrame(df["col"].tolist())

这有点frankensteinish,但你也可以尝试:

import numpy as np np.savetxt('outfile.csv', np.array(df['col'].tolist()), delimiter=',') new_df = pd.read_csv('outfile.csv')

答案 1 :(得分:2)

你也可以试试这个:

my-package/myfile

以上代码: 1.创建一个熊猫系列。 2.将系列值映射到原始数据框中的列。