我的数据框中有两个列。我想组合/覆盖列。
两个列:
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)