python pandas将数据帧扁平化为lis

2024-04-29 09:51:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的df:

import pandas
a=[['1/2/2014', 'a', '6', 'z1'], 
   ['1/2/2014', 'a', '3', 'z1'], 
   ['1/3/2014', 'c', '1', 'x3'],
   ]
df = pandas.DataFrame.from_records(a[1:],columns=a[0])

我想把df展平,所以它是一个连续的列表,如下所示:

['1/2/2014', 'a', '6', 'z1', '1/2/2014', 'a', '3', 'z1','1/3/2014', 'c', '1', 'x3']

我可以遍历行并extend到一个列表,但是这样做要简单得多吗?


Tags: columnsfromimportdataframepandasdf列表records
3条回答

也许用stack

df.stack().values
array(['1/2/2014', 'a', '3', 'z1', '1/3/2014', 'c', '1', 'x3'], dtype=object)

编辑:顺便说一下,Q中的DF使用第一行作为标签,这就是为什么它们不在这里的输出中。)

你可以试试纽比

import numpy as np
np.reshape(df.values, (1,df.shape[0]*df.shape[1]))

您只需在数据帧上使用^{}

df.values.flatten()

如果希望结果是Pythonlist,还可以添加^{}

编辑

如评论中所建议的,现在建议使用.to_numpy(),而不是.values

相关问题 更多 >