将 pandas DataFrame 的所有列连接到第一列
Concatenate all columns of a pandas DataFrame into the first one
我有一个包含 N (>10000) 列的数据框,我想将它们全部连接到第一列(换句话说,一个 "below" 另一个,都在第一列中)。
我得到的是这样的:
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)
但我想知道是否有更好的方法来做到这一点,因为对于大数据框,我的方法将花费很长时间。
谢谢!
已回答 ,但总结一下:
b = pd.concat([a[col] for col in a])
我有一个包含 N (>10000) 列的数据框,我想将它们全部连接到第一列(换句话说,一个 "below" 另一个,都在第一列中)。
我得到的是这样的:
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)
但我想知道是否有更好的方法来做到这一点,因为对于大数据框,我的方法将花费很长时间。
谢谢!
已回答
b = pd.concat([a[col] for col in a])