在 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
我在 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