将熊猫框架的列连接到1D阵列中



我有一个由数百列组成的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)

最新更新