python - 如何更改 numpy datetime64 中的年份值?

标签 python pandas numpy

我有一个带有 dtype=numpy.datetime64 的 pandas DataFrame 在我要更改的数据中

'2011-11-14T00:00:00.000000000'

到:

'2010-11-14T00:00:00.000000000'

或其他年份。 Timedelta 未知,只能分配年份。 这以整数形式显示年份

Dates_profit.iloc[50][stock].astype('datetime64[Y]').astype(int)+1970

但不能赋值。 有人知道如何将年份分配给 numpy.datetime64 吗?

最佳答案

由于您使用的是 DataFrame,请考虑使用 pandas.Timestamp.replace :

In [1]: import pandas as pd

In [2]: dates = pd.DatetimeIndex([f'200{i}-0{i+1}-0{i+1}' for i in range(5)])

In [3]: df = pd.DataFrame({'Date': dates})

In [4]: df
Out[4]:
        Date
0 2000-01-01
1 2001-02-02
2 2002-03-03
3 2003-04-04
4 2004-05-05

In [5]: df.loc[:, 'Date'] = df['Date'].apply(lambda x: x.replace(year=1999))

In [6]: df
Out[6]:
        Date
0 1999-01-01
1 1999-02-02
2 1999-03-03
3 1999-04-04
4 1999-05-05

关于python - 如何更改 numpy datetime64 中的年份值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45102739/

相关文章:

python - 如何从 pandas 对称数据框中提取元组

python - 尝试在 Eclipse 中运行 Python 2.7 和 3.4 时遇到问题

python - 在多索引数据帧上突出显示最大/最小值 - Pandas

python - 如何在 pandas 的前 N ​​列添加后缀?

python - 解析Excel报告

Python 3.4 类型错误 : argument of type 'int' is not iterable

python - 根据行号列表合并数据帧

numpy - 是否有 Julia 相当于 NumPy 的省略号切片语法 (...)?

python - matlab find() 在 python 中查找非零元素

python - 使用 CUDA 在 python 中展开一个简单的可并行化 for 循环