gpt4 book ai didi

pandas - 用先前的变量替换数据框中的 NaT

转载 作者:行者123 更新时间:2023-12-01 00:21:56 24 4
gpt4 key购买 nike

我该如何更换 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)

我尝试了两种方法:首先,我使用了 np.where来自 Pandas,但它无法识别 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 显示为对象时。

最佳答案

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

关于pandas - 用先前的变量替换数据框中的 NaT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com