首页 > 解决方案 > 将 pandas DataFrame 的所有列连接到第一列

问题描述

我有一个包含 N (>10000) 列的数据框,我想将它们全部连接到第一列(换句话说,一个“低于”另一个,都在第一列)。

我所拥有的看起来像这样:

cols = {'col1':['a','a','b','b'], ... , 'coln':[1,2,3,4]}
a = pd.DataFrame(cols)
a

   col1 ... coln
    0   ...   1
    4   ...   2
    3   ...   3
    3   ...   4

我试图得到这样的东西:

col1    
 0  
 4 
 3  
 3  
...
 1
 2
 3
 4

通常我会做这样的事情,这实际上是有效的:

b = pd.concat([a['col1'], ..., a['coln']]).reset_index(drop=True)

但我想知道是否有更好的方法来做到这一点,因为对于大数据框,我的方法需要很长时间。

谢谢!

标签: pythonpandasdataframeconcat

解决方案


这在这里得到了回答,但总结一下:

b = pd.concat([a[col] for col in a])

推荐阅读