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

Pandas 如何将包含列表的列转换为dataframe,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))] 它给出了有趣的结果 奇怪的是,如果我在单个raw上调用函数“e

我有一个熊猫数据框。 它的一列包含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))]
它给出了有趣的结果

奇怪的是,如果我在单个raw上调用函数“expand”,它会完全按照我的预期执行

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

选择Magoots:Thjis是我尝试应用你的建议的结果。它不起作用

试试这个:

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

这有点像弗兰肯斯坦,但你也可以试试:

将numpy导入为np
np.savetxt('outfile.csv',np.array(df['col'].tolist()),分隔符=',')
new_df=pd.read_csv('outfile.csv')

样本数据

df=pd.DataFrame()
df['col']=np.arange(4*5).重塑(4,5).tolist()
df
输出:

col
0   [0, 1, 2, 3, 4]
1   [5, 6, 7, 8, 9]
2   [10, 11, 12, 13, 14]
3   [15, 16, 17, 18, 19]
现在从
col

df.col.apply(pd.Series)
输出:

01234
0   0   1   2   3   4
1   5   6   7   8   9
2   10  11  12  13  14
3   15  16  17  18  19

您也可以尝试以下方法:

newCol = pd.Series(yourList)
df['colD'] = newCol.values
上述代码: 1.创建熊猫系列。
2.将序列值映射到原始数据帧中的列。

Nope。它也不起作用。。。我会试着发布截图你能检查一下df['col'].tolist()是否是一个列表列表吗?如果是这样的话,我的编辑应该是有效的。你的第一个建议非常有效!这是我的错:因为我从一个文件导入了数据帧,所以我认为它是一个列表,实际上是列表的一个字符串版本。通过先应用df['liwc']=df[“liwc”].apply(lambda x:ast.literal_eval(x))然后再应用您建议的命令,我已经获得了所需的内容。谢谢