我正在尝试在datetime64 [ns]类型的列上运行fillna.当我运行类似的东西:
DF [ ‘日期’].fillna(日期时间( “2000-01-01”))
我明白了:
TypeError:需要一个整数
有什么方法吗?
最佳答案 这应该在0.12和0.13(刚刚发布)中工作.
@DSM指出日期时间的构造如下:datetime.datetime(2012,1,1)
所以错误是由于未能构建您传递给fillna的值.
请注意,使用时间戳会解析字符串.
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]