Pandas 如何将包含列表的列转换为dataframe
我有一个熊猫数据框。 它的一列包含60个元素的列表,在其行中保持不变 如何将这些列表转换为一行新的数据帧 更清楚地说:假设A是包含n行的原始数据帧。其中一列包含60个元素的列表 我需要创建一个新的数据帧nx60 我的暂定: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
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))然后再应用您建议的命令,我已经获得了所需的内容。谢谢