如何在Pandas DataFrame中组合/覆盖2列



我的数据框中有两个列。我想组合/覆盖列。

两个列:

Column1 Column2
0   NaT NaT
1   2019-07-17 11:33:22 NaT
2   NaT NaT
3   NaT 2018-05-24 10:00:48

所需结果:

NewColumn
0   NaT
1   2019-07-17 11:33:22
2   NaT
3   2018-05-24 10:00:48

nat类型:

type(df['Column1'][0])

输出:

pandas._libs.tslibs.nattype.NaTType

日期类型:

type(df['Column1'][1])

输出:

pandas._libs.tslibs.timestamps.Timestamp

您可以使用:

fillna()

final=df.assign(New_Col=df.Column1.fillna(df.Column2))

或:

ffill() iloc[]

final=df.assign(New_Col=df.ffill(1).iloc[:,-1])

              Column1              Column2             New_Col
0                 NaT                  NaT                 NaT
1 2019-07-17 11:33:22                  NaT 2019-07-17 11:33:22
2                 NaT                  NaT                 NaT
3                 NaT  2018-05-24 10:00:48 2018-05-24 10:00:48

代码复制 df:

d=[{'Column1': pd.NaT, 'Column2': 'NaT'},
   {'Column1': pd.Timestamp('2019-07-17 11:33:22'), 'Column2': 'NaT'},
   {'Column1': pd.NaT, 'Column2': pd.NaT},
   {'Column1': pd.NaT, 'Column2': pd.Timestamp('2018-05-24 10:00:48')}]
pd.DataFrame(d)

最新更新