Python 熊猫在不应该的时候返回NaT

Python 熊猫在不应该的时候返回NaT,python,pandas,Python,Pandas,我的数据帧是 time NTCS001G002 NTCS001W005 0 2013-05-30 23:00:00 NaN NaN 1 2013-06-30 23:00:00 249 60 2 2013-07-31 23:00:00 161 2 3 2013-09-01 23:00:00 151 11 4 2013-09-04 23

我的数据帧是

time  NTCS001G002  NTCS001W005
0  2013-05-30 23:00:00          NaN          NaN
1  2013-06-30 23:00:00          249           60
2  2013-07-31 23:00:00          161            2
3  2013-09-01 23:00:00          151           11
4  2013-09-04 23:00:00           14            0
5  2013-10-01 23:00:00          162           64
6  2013-11-01 00:00:00          281          175
7  2013-12-03 00:00:00          482          168
8  2014-01-02 00:00:00          378          NaN
9  2014-01-03 00:00:00          NaN          NaN
10 2014-02-03 00:00:00          NaN          167
11 2014-03-03 00:00:00          502          167
当我像这样迭代行时 对于索引,diff.iterrows()中的行: 打印“err”,row.tolist()

我不确定那些NaT是不是一个bug。我想他们应该是南 熊猫可以不返回NaT吗?如果不能,我如何检查它们,因为我将不得不在列表中替换它们


感谢

原因是ItErrors将每一行转换为一个系列,并且这一行转换为datetime64

In [11]: pd.Series([pd.Timestamp('2014-01-03 00:00:00', tz=None), np.nan, np.nan])
Out[11]:
0   2014-01-03
1          NaT
2          NaT
dtype: datetime64[ns]

NaT
表示“非时间”,相当于时间戳值的
nan


您能说出数据帧的
d类型吗?尝试将列强制转换为浮点值。

这很有趣——第10行有一个
nan
,而第9行有一个
NaT
。你能展示一下这个数据框是如何定义的吗?使用
pd.read\u table
天真地加载数据不会重现问题。我可以使用更简单的情况重现问题。我认为这泄露了关于“ItErrors不跨行保留数据类型”的具体实现细节(如文档所说);e、 你到底想在这里做什么?
In [11]: pd.Series([pd.Timestamp('2014-01-03 00:00:00', tz=None), np.nan, np.nan])
Out[11]:
0   2014-01-03
1          NaT
2          NaT
dtype: datetime64[ns]