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

本文介绍了如何使用Pandas处理时间序列数据,重点讲解了resample函数的应用,包括数据类型的转换和迭代器iterrows的使用方法。

这个问题说的很清楚,就是类型不对,需要转化类型,首先讲一下这个问题是在使用pandas的resample函数激发的,官方文档解释的较为清楚,如下:

Convenience method for frequency conversion and resampling of time series. Object must have a datetime-like index (DatetimeIndex, PeriodIndex, or TimedeltaIndex), or pass datetime-like values to the on or level keyword.

这个函数的目的主要是重新选择时间频率的,一组数据的频率既可以变大也可以变小,完全根据需求来,没有的数据就会变成NaN。问题是resample的数据必须是datetime-like index,而pandas的数据是DateFrame类型的,这个时候啊,该数据结构类似一种词典类型,给提供了index,values,columns等基本的属性。此时,只需要将数据的索引变成datetime类型的即可。如下:

y.index = pd.to_datetime(y.index)

这个时候我们看一下数据类型从DateFrame变成了Series,可以说是解决了大问题,其实之前的博客写过,Series是很方便的,但也不是说DateFrame不方便,稍稍处理一下功能更多。

另外还有一个iterrows的迭代器,也很方便,官方介绍是这样的:

DataFrame.iterrows()Iterate over DataFrame rows as (index, Series) pairs.

这个也很好啊,这样对值的访问就更加方便了,因为Series支持label索引式的访问。

转载于:https://www.cnblogs.com/cvtoEyes/p/9578668.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值