在 pandas 串联后重新调整列

Readjusting columns after pandas concatenation

我在 Pandas concat 操作后生成如下数据框:

Date      Col1  Col2    Col1    Col2
1/1/2021    1   3       
2/1/2021    2   4       
3/1/2021                5        6
4/1/2021                7        8

我想得到以下信息:

Date      Col1  Col2    
1/1/2021    1   3       
2/1/2021    2   4       
3/1/2021    5   6
4/1/2021    7   8

我不确定如何实现上述目标。

编辑:代码是祖父式的,所以我不能基于 axis=0 进行连接。本质上这是一个 post concat 问题

在进行串联时尝试使用此方法:pd.concat(....,axis=0)。 concat操作后不需要重新调整。

更新:您仍然可以执行此 post 串联。根据条件 col1/col2 等于 null,将 dataframe 一分为二。然后用 axis=0.

进行连接

让我们尝试 stack + unstack 删除 NaN

df.set_index('Date').stack().unstack()

另一种方法是沿列轴使用 groupby + first

df.set_index('Date').groupby(level=0, axis=1).first()

          Col1  Col2
Date                
1/1/2021   1.0   3.0
2/1/2021   2.0   4.0
3/1/2021   5.0   6.0
4/1/2021   7.0   8.0