Skip to main content
 首页 » 编程设计

python之如何在 Pandas 中垂直连接多列

2025年05月04日16lautakyan007

我正在尝试向数据框中添加一个新列,并用数据框中的多个其他列串联在一起填充该列。这个新列的长度与数据框中其余列的长度不同,我该如何做到这一点?

例如:

df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B']) 

我想在数据框中创建一个 C 列,读取 1,1,4,2,3,6(垂直方向除外)

print (df) 
   A  B  C 
0  1  2  1  
1  1  3  1 
2  4  6  4 
3        2 
4        3 
5        6 

请您参考如下方法:

稍微修改了 Anton 的解决方案(适用于任意数量的列):

In [99]: df = pd.DataFrame(np.random.randint(0,10,(3,4)), columns=list('ABCD')) 
 
In [100]: df 
Out[100]: 
   A  B  C  D 
0  9  6  9  6 
1  1  2  0  8 
2  5  0  4  8 
 
In [105]: pd.concat([df, df.T.stack().reset_index(name='new')['new']], axis=1) 
Out[105]: 
      A    B    C    D  new 
0   9.0  6.0  9.0  6.0    9 
1   1.0  2.0  0.0  8.0    1 
2   5.0  0.0  4.0  8.0    5 
3   NaN  NaN  NaN  NaN    6 
4   NaN  NaN  NaN  NaN    2 
5   NaN  NaN  NaN  NaN    0 
6   NaN  NaN  NaN  NaN    9 
7   NaN  NaN  NaN  NaN    0 
8   NaN  NaN  NaN  NaN    4 
9   NaN  NaN  NaN  NaN    6 
10  NaN  NaN  NaN  NaN    8 
11  NaN  NaN  NaN  NaN    8