我想为我的时间序列数据设置频率(我的数据以5分钟为间隔)

时间:2019-07-31 08:38:10

标签: python python-3.x pandas jupyter-notebook

我有一个月的用电量数据(每次读数需要五分钟),我想在此数据集中设置一个频率。请帮助我(如果您想查看我的数据,那么我可以提供,请告知我)

在jupyter笔记本中,我尝试过类似(let,df = my_data)的代码

df = pd.read_excel('practice.xlsx',index_col=0,parse_dates=[['Date', 'Time']])
df = df.asfreq(freq='5T')


my data (in which I want to set frequency)

    df.head()

    Date_Time              Actual Load
    2019-06-01 00:05:00     5414.0
    2019-06-01 00:10:00     5385.5
    2019-06-01 00:15:00     5330.8
    2019-06-01 00:20:00     5308.3
    2019-06-01 00:25:00     5278.6

    df.tail()

    Date_Time               Actual Load
    2019-06-30 23:35:00     6333.9
    2019-06-30 23:40:00     6291.7
    2019-06-30 23:45:00     6265.8
    2019-06-30 23:50:00     6282.0
    2019-06-30 23:55:00     6217.7

出现此错误:

  

ValueError:无法从重复的轴重新索引

2 个答案:

答案 0 :(得分:1)

检查df[df.index.duplicated()]是否返回重复值? 如果是,

使用df = df[~df.index.duplicated()]删除重复项

这可能就是这种原因之一。分享您的df.sample(5)以获得更好的主意

编辑: 根据您的头和尾数据,第一个建议是使用

df = pd.read_excel('practice.xlsx',index_col=0,parse_dates=[['Date', 'Time']])

这将合并您的日期和时间列。

现在df = df.asfreq(freq='5T')将起作用。

如果您想按小时频率重新采样,请使用df.resample('H', how='mean')

答案 1 :(得分:0)

您正在使用“ D”或“ H”作为索引,并且索引具有不允许的相同值。当索引具有重复项或单个值时,您尝试分配给列。

建议共享一个示例数据以复制您的错误。