【问题标题】:Resampling 1 min data to 15 min giving key errors of Range Index or Index将 1 分钟数据重新采样到 15 分钟,给出范围索引或索引的关键错误
【发布时间】:2021-10-25 08:32:27
【问题描述】:

我想将 1 分钟数据转换为 15 分钟。数据格式为日期、开盘价、最高价、最低价、收盘价、成交量。

我收到此错误:“TypeError:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但得到了一个 'RangeIndex' 实例” 然后我在 Stackoverflow 上搜索并使用此功能添加索引。 data.set_index(data['Date'], inplace=True) 但是现在我收到了这个错误:“TypeError:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但得到了一个 'Index' 的实例”

这是代码:

import datetime as dt
import pandas as pd

data = pd.read_csv('Tatasteel')
data.set_index(data['Date'], inplace=True)
date = pd.to_datetime(data['Date'])


data['Open'] = data.resample('15Min')['Open'].first()
data['High'] = data.resample('15Min')['High'].max()
data['Low'] = data.resample('15Min')['Low'].min()
data['Close'] = data.resample('15Min')['Close'].last()
data['Volume'] = data.resample('15Min')['Volume'].sum()

print(data.head())

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    通过index_colparse_dates 参数创建DatetimeIndex,然后分配给相同的列,通过聚合函数创建新的DataFrame:

    data = pd.read_csv('Tatasteel', index_col='Date', parse_dates=['Date'])
    
    df = data.resample('15Min').agg({'Open': 'first',
                                     'High': 'max',
                                     'Low': 'min',
                                     'Close': 'last',
                                     'Volume': 'sum'})
    

    【讨论】:

      猜你喜欢
      • 2019-01-13
      • 2021-12-02
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多