【发布时间】:2021-03-05 19:55:27
【问题描述】:
我有一个 df:
date open high low close
12/31/2005 17:00 0.85224 0.88269 0.85 0.86321
1/31/2006 17:00 0.86321 0.86438 0.83967 0.84373
2/28/2006 17:00 0.84373 0.85519 0.82036 0.83613
3/31/2006 17:00 0.83655 0.85165 0.83237 0.84776
4/30/2006 17:00 0.84776 0.86062 0.82694 0.82836
5/31/2006 17:00 0.82836 0.83802 0.8121 0.8293
6/30/2006 17:00 0.8293 0.86851 0.82221 0.86665
7/31/2006 17:00 0.86665 0.86773 0.83658 0.84212
8/31/2006 17:00 0.84246 0.85794 0.82869 0.83334
9/30/2006 17:00 0.82987 0.86971 0.82661 0.86758
10/31/2006 17:00 0.86717 0.90246 0.86284 0.89894
11/30/2006 17:00 0.89853 0.9206 0.89402 0.91748
12/31/2006 17:00 0.91748 0.93901 0.90711 0.91386
1/31/2007 17:00 0.91346 0.92743 0.90495 0.921
2/28/2007 17:00 0.92083 0.94434 0.90589 0.93246
3/31/2007 17:00 0.93192 0.95089 0.91939 0.92037
4/30/2007 17:00 0.92024 0.92818 0.87458 0.88427
5/31/2007 17:00 0.88422 0.91127 0.87847 0.90419
6/30/2007 17:00 0.90183 0.92689 0.89691 0.90782
我的索引列是dtype='datetime64[ns]。
我尝试通过df.index = df.index + relativedelta(months=+1) 操作+1 month,但没有成功,收到此错误TypeError: unsupported operand type(s) for +: 'DatetimeIndex' and 'relativedelta'
尝试df.index = pd.to_timedelta(df.index) 并没有工作TypeError: dtype datetime64[ns] cannot be converted to timedelta64[ns]
已经检查了这个post,但仍然不知道该怎么做。我该怎么做才能增加 1 个月?谢谢。
附注我希望日期相同,顺便说一句,我认为 relativedelta 不能做到这一点,例如 3/31 将变为 3/28...
【问题讨论】:
-
@MrFuppes - 看来 OP 需要别的东西,检查已删除的答案。
标签: python pandas dataframe datetime timedelta