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