如何在 Pandas 中垂直连接多列

Mat*_*ew 1 python pandas

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

例如:

df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
Run Code Online (Sandbox Code Playgroud)

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

print (df)
   A  B  C
0  1  2  1 
1  1  3  1
2  4  6  4
3        2
4        3
5        6
Run Code Online (Sandbox Code Playgroud)

Max*_*axU 5

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

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
Run Code Online (Sandbox Code Playgroud)