如何从数据框出发:
df = pd.DataFrame({'a': range(0, 10), 'b': range(10, 20), 'c': range(20, 30)})
如下所示:
a b c
0 0 10 20
1 1 11 21
2 2 12 22
3 3 13 23
4 4 14 24
5 5 15 25
6 6 16 26
7 7 17 27
8 8 18 28
9 9 19 29
并将其转换为列表:['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29']
答案 0 :(得分:3)
使用numpy:
list(np.reshape(df.values, -1, order='F'))
您的df形状为(10,3),而您想要的形状为(30,)。您可以通过numpy的重塑来实现。
-1
在这种情况下只是(30,)
的快捷方式。
order='F'
确保您获得的值是“列式”的,如所需输出中所示。
通过tolist
使用NumPy方法,您可以使用:
df.values.reshape(-1, order='F').tolist()
答案 1 :(得分:1)
我想可能有更好的方法,但是以下方法会起作用:
import pandas as pd
df = pd.DataFrame({'a': range(0, 10), 'b': range(10, 20), 'c': range(20, 30)})
mylist = list()
for i in df.columns:
mylist += map(str, df[i].values.tolist())
print(mylist)
输出:
['0','1','2','3','4','5','6','7','8','9','10','11 ','12', '13','14','15','16','17','18','19','20','21','22','23', '24','25','26','27','28','29']