Python 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])

Я хочу сгладить df, так что это один непрерывный список:

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

Я могу перебирать строки и extend в список, но это гораздо более простой способ сделать это?

Ответы

Ответ 1

Вы можете просто использовать .flatten() в кадре данных:

df.values.flatten()

и вы также можете добавить .tolist(), если хотите, чтобы результатом был Python list.

Изменить

Как предлагается в комментариях, теперь рекомендуется .to_numpy() вместо .values.

Ответ 2

Может быть, использовать стек?

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

(Редактировать: Кстати, DF в Q использует первую строку в качестве метки, поэтому их здесь нет в выводе.)

Ответ 3

Вы можете попробовать с numpy

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