资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

Pandas|Index不是datatime index报错

Python 更新时间: 发布时间: 计算机考试归档 最新发布

Pandas|Index不是datatime index报错

1. 报错提示
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'
2. 背景

需要以date作为分组依据,求均值。

grouper = pd.Grouper(freq=’D‘)) # 根据freq的值建立分组列表,D表示天
data.reset_index().set_index('date').groupby(grouper).mean() # data是一个dataframe的数据

data数据表example如下:

assetfactor
date
2015-01-15A0.25
2015-01-15B0.58
2015-01-16A0.89
2015-01-16B0.36

在pandas中,作为index的列会下沉显示,不再归为column

当data数据表由函数计算得出时,放入函数中不会报错,可以运行。
当把data数据表以csv的形式储存,再读取并重新设置date为index,放入函数中,报错。

data = data.set_index('date')
3. 原因

根据提示,报错原因时进行运算的dataframe要求时datetime index形式,而传入的只是index

这是因为数据表存入csv后,失去了数据列表的详细信息,比如全部都变成了column,没有了index的信息,需要重新设置。且列数据的数据类型也丢失了,所以经过set_index后,只是index,而不是datetime index

4. 解决方案

在set_index之前或者之后,把date列转为datetime的形式。

# 先转为datetime
data = data.set_index('date')
data.index = pd.to_datetime(data.index)

# 先设置index
data['date'] = pd.to_datetimedata['date'])
data = data.set_index('date')
5. 碎碎念

啊!终于找到了!

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1041880.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【Pandas|Index不是datatime index报错】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2