datetime obj上的Pandas fillna

2024-05-17 12:46:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试图对datetime64[ns]类型的列运行fillna。当我运行类似于: df['date'].fillna(datetime("2000-01-01"))

我得到: TypeError: an integer is required

有办法吗?


Tags: an类型dfdatetimedateisrequiredinteger
1条回答
网友
1楼 · 发布于 2024-05-17 12:46:50

这应该在0.12和0.13(刚刚发布)中有效。

@DSM指出,日期时间的构造方式如下:datetime.datetime(2012,1,1) 因此,错误在于未能构造要传递给fillna的值。 注意,使用Timestamp将解析字符串。

In [3]: s = Series(date_range('20130101',periods=10))

In [4]: s.iloc[3] = pd.NaT

In [5]: s.iloc[7] = pd.NaT

In [6]: s
Out[6]: 
0   2013-01-01 00:00:00
1   2013-01-02 00:00:00
2   2013-01-03 00:00:00
3                   NaT
4   2013-01-05 00:00:00
5   2013-01-06 00:00:00
6   2013-01-07 00:00:00
7                   NaT
8   2013-01-09 00:00:00
9   2013-01-10 00:00:00
dtype: datetime64[ns]

datetime.datetime也会起作用

In [7]: s.fillna(Timestamp('20120101'))
Out[7]: 
0   2013-01-01 00:00:00
1   2013-01-02 00:00:00
2   2013-01-03 00:00:00
3   2012-01-01 00:00:00
4   2013-01-05 00:00:00
5   2013-01-06 00:00:00
6   2013-01-07 00:00:00
7   2012-01-01 00:00:00
8   2013-01-09 00:00:00
9   2013-01-10 00:00:00
dtype: datetime64[ns]

相关问题 更多 >