我有一个由数百列组成的pd数据帧。我想将所有列竞争成一个1D数组。例如,支持数据帧是这样的:
pd df:
set1 set2 set3 ... set175
3 5 6 ... 9
4 8 0 ... 22
. . . ... .
. . . ... .
而且,在连接之后我想要这样的东西:
concatenated to 1D array:
[3,4,...,5,8,...,6,0,...,9,22]
我可能还想只连接一些列,比如从第1列到第3列:
concatenated to column 1-3:
[3,4,...,5,8,...,6,0]
做这件事有什么方便的方法?我应该把pd-df转换成numpy数组吗?
到目前为止,我已经找到了使用列标题连接panda数据帧的解决方案,这对于数百列来说是不实用的。在另一种方法中,使用pd.contenate((连接多个数据帧的列。但是,我想连接单个数据帧的各列。这个问题是我目前正在处理的复杂处理中的一个小部分。所以,我希望能有一个直截了当的答案。
# stack and take the values
# choosing all columns and rows
df.T.stack().values
array([3, 4, 5, 8, 6, 0, '...', '...', 9, 22], dtype=object)
# choosing only two columns
df.T.iloc[:,1:3].stack().values
array([4, 8, 0, '...', 22], dtype=object)