如果为空,则在同一数据框中合并具有相同名称的列

时间:2019-10-02 17:38:34

标签: python pandas dataframe

我有一个看起来像这样的数据框

    Depth   DT  DT  DT  GR  GR  GR

1   100    NaN  45  NaN 100 50  NaN

2   200    NaN  45  NaN 100 50  NaN

3   300    NaN  45  NaN 100 50  NaN

4   400    NaN  Nan 50  100 50  NaN

5   500    NaN  Nan 50  100 50  NaN

如果有空值,我需要将同名列合并为一个,如果其他列不为空,则保留该列的首次出现。 最后,数据框应该看起来像

Depth   DT  GR

1   100 45  100

2   200 45  100

3   300 45  100

4   400 50  100

5   500 50  100

我是熊猫的初学者。我尝试过但没有成功。我尝试删除重复项,但无法完成我想要的操作。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

IIUC,您可以这样做:

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

输出:

   Depth    DT     GR
0    100  45.0  100.0
1    200  45.0  100.0
2    300  45.0  100.0
3    400  50.0  100.0
4    500  50.0  100.0