1

我有一个数据框如下,我在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问题

4

2 回答 2

2

让我们尝试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
于 2021-11-07T10:46:50.463 回答
0

在进行连接时尝试使用它:pd.concat(....,axis=0). concat 操作后无需重新调整。

更新:您仍然可以执行此后连接。根据 col1/col2 等于 null 的条件,将数据帧分成两部分。然后用axis=0.

于 2021-11-07T10:34:24.060 回答