Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Int64Index'
时间: 2024-02-14 15:07:51 浏览: 147
Springboot @Validated和@Valid的区别及使用详解
这个错误通常是由于在对非时间序列的索引进行重采样时引起的。`resample` 函数要求数据的索引是 `DatetimeIndex`、`TimedeltaIndex` 或 `PeriodIndex` 类型,而不是 `Int64Index` 或其他类型的索引。
如果你遇到了这个错误,可以尝试将数据的索引转换为时间索引,例如使用 `pd.to_datetime` 函数将时间戳列转换为 `DatetimeIndex` 类型:
```python
import pandas as pd
# 读取数据集
taxi_data = pd.read_csv('taxi_data.csv')
# 将 pickup_datetime 列转换为 DatetimeIndex 类型
taxi_data['pickup_datetime'] = pd.to_datetime(taxi_data['pickup_datetime'])
taxi_data = taxi_data.set_index('pickup_datetime')
# 将时序数据按照每小时进行重采样,并计算每小时订单的平均时长
resampled_data = taxi_data.resample('H').mean()
# 输出重采样后的数据
print(resampled_data)
```
上述代码中,我们使用 `pd.to_datetime` 函数将 `pickup_datetime` 列转换为 `DatetimeIndex` 类型,然后将其设为数据的索引。这样,我们就可以使用 `resample` 函数对数据进行时间重采样了。
阅读全文