我有两个这样的数据框:

df1
col1    col2
 A        1
 B        2
 C        3


df2
col1    col2
 E        4
 F        5
 G        6


我想通过以这样一种方式组合这些数据帧来创建一个数据帧,即一行df1,然后一行df2。

所需的输出是

df
col1    col2
 A        1
 E        4
 B        2
 F        5
 C        3
 G        6


我可以使用for循环执行此操作,并将行从两个数据帧附加到单个数据帧中,

但是我正在寻找以pythonic方式最有效地实现熊猫的快捷方式。

最佳答案

concatDataFrame.stack一起使用:

df = pd.concat([df1, df2], 1, keys=(0,1)).stack(0).reset_index(drop=True)
print (df)
  col1  col2
0    A     1
1    E     4
2    B     2
3    F     5
4    C     3
5    G     6


要么:

df = pd.concat([df1, df2]).sort_index().reset_index(drop=True)
print (df)
  col1  col2
0    A     1
1    E     4
2    B     2
3    F     5
4    C     3
5    G     6

10-07 12:37
查看更多