我有一个数据帧如下:
V
Out[58]:
P1 P2 P3
V1 a b c
V2 f g h
V3 k l m
我想将它们全部存储在列表L中,以便:
L=[a,b,c,f,g,h,k,l,m]
从1行迭代到另一行。知道如何去做吗?谢谢
访问.values
属性,重新整形,并使用ndarray.tolist
转换为列表:
df.values.reshape(-1,).tolist()
['a', 'b', 'c', 'f', 'g', 'h', 'k', 'l', 'm']
另一个是stack
ing,接着是直接的tolist
电话:
df.stack().tolist()
['a', 'b', 'c', 'f', 'g', 'h', 'k', 'l', 'm']
使用tolist
和sum
sum(df.values.tolist(),[])
Out[65]: ['a', 'b', 'c', 'f', 'g', 'h', 'k', 'l', 'm']
from itertools import chain
import pandas as pd
df = pd.DataFrame([['a', 'b', 'c'],
['f', 'g', 'h'],
['k', 'l', 'm']],
columns=['P1', 'P2', 'P3'],
index=['V1', 'V2', 'V3'])
res = list(chain.from_iterable(df.values))
# ['a', 'b', 'c', 'f', 'g', 'h', 'k', 'l', 'm']