TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of ‘Ran

在python中对股票进行时间序列的重分类时遇到报错

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'

但是如果用yahoo的pandas股票获取函数获得的DataFrame不会出现这种报错。

网上许多人用这种方法就能解决,但是我解决不了,无论用什么方法把Date列转换时间序列都不能解决。

stock_df['Date']=pd.to_datetime(stock_df['Date'])

通过查看Excel读取和雅虎获取的两个结果,发现雅虎网上获取的以时间为序列。

[5 rows x 12 columns]
Backend TkAgg is interactive backend. Turning interactive mode on.
[*********************100%***********************]  1 of 1 downloaded
            Open  High   Low  Close  Adj Close    Volume
Date                                                    
2021-05-06  9.12  9.20  8.90   9.08       9.08  40262415
2021-05-07  9.22  9.24  8.78   8.90       8.90  58947590
2021-05-10  8.94  9.14  8.88   9.04       9.04  43689496
2021-05-11  9.04  9.14  8.66   9.07       9.07  53424412
2021-05-12  9.00  9.43  8.97   9.16       9.16  43475280

加上代码把Date设为索引后,Bug顺利解决。

stock_df = pd.DataFrame(stock_df).set_index('Date')

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Python中,当对股票进行时间序列的重分类时,如果出现错误TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index',这是因为索引的数据类型不是日期时间格式。为了解决这个问题,有以下几种方法可以尝试: 1. 将日期列设置为索引:可以使用`set_index()`函数将日期列设置为索引。例如,可以使用以下代码将'Date'列设置为索引:`stock_df = pd.DataFrame(stock_df).set_index('Date')`。这样做可以将索引的数据类型转换为日期时间格式,从而解决错误。 2. 判断索引是否为时间格式:可以使用if语句判断索引是否为时间格式。如果索引不是时间格式,则需要将其转换为时间格式。可以使用`pd.to_datetime()`函数将索引转换为时间格式。例如,可以使用以下代码将索引列'time'转换为时间格式:`qihuo3['time'] = pd.to_datetime(qihuo3['time'])`。 3. 判断索引中是否有非时间格式:有时候,索引中可能包含非时间格式的值,这也会导致出现错误。可以使用条件语句来排除索引中非时间格式的行。例如,可以使用以下代码排除'time_A'或'time_B'为0的行:`qihuo3 = qihuo3[(qihuo3['time_A']!=0) & (qihuo3['time_B']!=0)]`。然后,可以使用`max()`函数取' time_A'和'time_B'中较大的时间作为索引:`qihuo3['time'] = qihuo3[['time_A','time_B']].max(axis=1)`。 通过以上方法,你可以解决TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'的错误,并成功进行时间序列的重分类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬_冬_

若觉得文章对您有用,请随意打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值