python pandas将数据帧展平为列表

jas*_*son 38 python numpy list dataframe pandas

我有一个这样的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])
Run Code Online (Sandbox Code Playgroud)

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

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

我可以循环遍历行和extend列表,但这是一种更简单的方法吗?

Sau*_*tro 69

你可以.flatten()在DataFrame上使用:

df.values.flatten()
Run Code Online (Sandbox Code Playgroud)

.tolist()如果您希望结果是Python ,也可以添加list.

  • pandas 现在[建议](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.values.html)使用`.to_numpy()`而不是`.values`。 (9认同)

mel*_*oly 12

也许使用堆栈

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

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