为数据框架中的datetime64列添加偏移量[英] add offset to the datetime64 column in a data frame

本文是小编为大家收集整理的关于为数据框架中的datetime64列添加偏移量的处理方法,想解了为数据框架中的datetime64列添加偏移量的问题怎么解决?为数据框架中的datetime64列添加偏移量问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

这真的很快:

我正在从 q 迁移到 pandas,我正在尝试为数据框"spy"的 Date 列中的每个项目添加 1 个 nano

>>> spy
<class 'pandas.core.frame.DataFrame'>
Int64Index: 126 entries, 0 to 125
Data columns (total 6 columns):
Date      126  non-null values
Open      126  non-null values
High      126  non-null values
Low       126  non-null values
Close     126  non-null values
Volume    126  non-null values
dtypes: datetime64[ns](1), float64(4), int64(1)

为了说明,我有这个 1 纳米

ttt=np.datetime64(1,'ns')

然后我尝试做:

[x+ttt for x in spy['Date']]

我收到以下错误:

Traceback (most recent call last):
  File "/tmp/py6868jTH", line 9, in <module>
    [x+ttt for x in spy['Date']]
TypeError: ufunc add cannot use operands with types dtype('O') and dtype('<M8[ns]')

谁能启发我这里有什么问题?ttt 和 x 应该是同一种类型吧?

谢谢!

推荐答案

你不能添加日期时间.您必须改用 timedelta:

>>> s  = pd.Series(pd.date_range('2013-11-11', periods=3, freq='D'))
>>> td = np.timedelta64(1,'ns')
>>> s
0   2013-11-11 00:00:00
1   2013-11-12 00:00:00
2   2013-11-13 00:00:00
dtype: datetime64[ns]
>>> s + td
0   2013-11-11 00:00:00.000000001
1   2013-11-12 00:00:00.000000001
2   2013-11-13 00:00:00.000000001
dtype: datetime64[ns]

本文地址:https://www.itbaoku.cn/post/1728104.html