Numpy PANDES:更改单元格中的时间戳会导致不正确的值

Numpy PANDES:更改单元格中的时间戳会导致不正确的值,numpy,pandas,Numpy,Pandas,我有一个pandas数据帧,我试图将其中一个单元格的时间戳更改为不同的时间戳。然而,我没有得到我期望的结果。以下是我所拥有的: >>> df = pd.DataFrame({"d": [np.datetime64('2013-07-14T10:30:30.521Z'), np.datetime64('2013-07-21T10:30:30.521Z')]}) >>> df d 0 2013-07-14 10

我有一个pandas数据帧,我试图将其中一个单元格的时间戳更改为不同的时间戳。然而,我没有得到我期望的结果。以下是我所拥有的:

>>> df = pd.DataFrame({"d": [np.datetime64('2013-07-14T10:30:30.521Z'), np.datetime64('2013-07-21T10:30:30.521Z')]})
>>> df
                           d
0 2013-07-14 10:30:30.521000
1 2013-07-21 10:30:30.521000
>>> df.iloc[-1, df.columns.get_loc("d")] = np.datetime64('2013-08-29T10:30:30.521Z')
>>> df
                              d
0    2013-07-14 10:30:30.521000
1 1970-01-01 00:22:57.772230521
如示例所示,我为
df.loc[1,“d”]
获取的时间戳不是我分配给该单元格的时间戳。我不明白这种行为,也不知道我哪里做错了。是否有其他方法需要更改时间戳的值


编辑:以上只是一个简单的例子。我的实际df有很多列,而不仅仅是1列。我使用的是pandas版本0.16.1(无法更改版本)。

因为您的df只有一列,所以您可以这样做:

In [29]: df
Out[29]:
                        d
0 2013-07-14 10:30:30.521
1 2013-07-21 10:30:30.521

In [30]: df.iloc[-1] = pd.to_datetime('2013-08-29T10:30:30.521Z')

In [31]: df
Out[31]:
                        d
0 2013-07-14 10:30:30.521
1 2013-08-29 10:30:30.521
更新:如果DF中有多列:

In [47]: df
Out[47]:
                        d  a
0 2013-07-14 10:30:30.521  1
1 2013-07-21 10:30:30.521  1

In [48]: df.loc[df.index[-1], 'd'] = pd.to_datetime('2013-08-29T10:30:30.521Z')

In [49]: df
Out[49]:
                        d  a
0 2013-07-14 10:30:30.521  1
1 2013-08-29 10:30:30.521  1

对不起,我应该澄清一下。以上只是一个简单的例子;我的实际df有更多的列。这仍然给了我错误的时间戳。可能与我的pandas版本有关-但我不能更改它。@LateCoder,你有什么版本?你可能想用
df.loc
0.16.1替换
df.ix
(在上面的编辑中添加到我的问题中)你的示例代码对我来说工作正常。您使用的pandas/numpy版本是什么?