我怎样才能用数据框中的NaT
替换之前创建(设置)的日期/变量?
我得到了以下数据框:
Date Name CF
0 NaT Peter -10
0 2017-12-14 Peter -20
1 NaT Tomas -5.5
1 2017-12-15 Peter -25
2 NaT Tomas -3
2 2017-12-14 Tomas -5
3 NaT Walker -4.6
3 2017-12-15 Tomas 88
4 2017-12-15 Tomas -30
5 2017-12-15 Walker 15
我想用我在项目开头设置的变量替换NaT:这样的End
变量:
format_date = "%d-%m-%Y"
end = datetime.date(2017, 12, 15)
我尝试了两种方法:首先,我使用了Pandas中的np.where
,但它无法识别NaT
。其次,我试过这个
test = table_final2.Date.astype(object).where(table_final2.Date.notnull(), end)
但这导致列Date
Date Name CF
0 2017-12-15 Peter -10
0 2017-12-14 00:00:00 Peter -20
1 2017-12-15 Tomas -5.5
1 2017-12-15 00:00:00 Peter -25
2 2017-12-15 Tomas -3
2 2017-12-14 00:00:00 Tomas -5
3 2017-12-15 Walker -4.6
3 2017-12-15 00:00:00 Tomas 88
4 2017-12-15 00:00:00 Tomas -30
5 2017-12-15 00:00:00 Walker 15
那么,我该如何准确地替换NaT? 提前谢谢!
PD:当test.dtypes将Date显示为对象时。
答案 0 :(得分:2)
IIUC您可以使用Series.fillna()
方法:
In [138]: end = pd.to_datetime('2017-12-15')
In [139]: df['Date'] = df['Date'].fillna(end)
In [140]: df
Out[140]:
Date Name CF
0 2017-12-15 Peter -10.0
0 2017-12-14 Peter -20.0
1 2017-12-15 Tomas -5.5
1 2017-12-15 Peter -25.0
2 2017-12-15 Tomas -3.0
2 2017-12-14 Tomas -5.0
3 2017-12-15 Walker -4.6
3 2017-12-15 Tomas 88.0
4 2017-12-15 Tomas -30.0
5 2017-12-15 Walker 15.0