大 pandas 每日平均,大 pandas 。重新取样

pandas daily average, pandas.resample(大 pandas 每日平均,大 pandas 。重新取样)
本文介绍了大 pandas 每日平均,大 pandas 。重新取样的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个类似于此的CSV文件

Date,Temp1,Temp2

23-Oct-09 01:00:00,21.1,22.3

23-Oct-09 04:00:00,22.3,23.8

23-Oct-09 07:00:00,21.4,21.3

23-Oct-09 10:00:00,21.5,21.6

23-Oct-09 13:00:00,22.3,23.8

23-Oct-09 16:00:00,21.4,21.3

23-Oct-09 19:00:00,21.1,22.3

23-Oct-09 22:00:00,21.4,21.3

24-Oct-09 01:00:00,22.3,23.8

24-Oct-09 04:00:00,22.3,23.8

24-Oct-09 07:00:00,21.1,22.3

24-Oct-09 10:00:00,22.3,23.8

24-Oct-09 13:00:00,21.1,22.3

24-Oct-09 16:00:00,22.3,23.8

24-Oct-09 19:00:00,21.1,22.3

24-Oct-09 22:00:00,22.3,23.8

我已经用:读取了数据

df=pd.read_csv('data.csv', index_col=0)

并将索引转换为日期时间

df.index=pd.to_datetime(df.index)
现在我想要取每天的平均温度,我一直在尝试使用pd。重新采样如下,但一直收到错误。我已经读过 pandas 了。这里有重新取样的文档和无数的例子,但我仍然不知所措...

df_avg = df.resample('D', how = 'mean')

DataError:没有要聚合的数值类型

我希望df_avg是一个具有日期时间索引和两个2列的数据帧。我用的是 pandas 0.17.1和PYTHON 3.5.2,非常感谢大家的帮助!

推荐答案

您需要先将string列转换为float

#add parameter parse_dates for convert to datetime first column
df=pd.read_csv('data.csv', index_col=0, parse_dates=[0])

df['Temp1'] = df.Temp1.astype(float)
df['Temp2'] = df.Temp2.astype(float)

df_avg = df.resample('D').mean()

如果astype返回error,则问题是存在一些非数值。因此,您需要将to_numericerrors='coerce'一起使用-然后将所有有问题的值转换为NaN

df['Temp1'] = pd.to_numeric(df.Temp1, errors='coerce')
df['Temp2'] = pd.to_numeric(df.Temp2, errors='coerce')

您还可以使用boolean indexing

检查具有问题值的所有行
print df[pd.to_numeric(df.Temp1, errors='coerce').isnull()]
print df[pd.to_numeric(df.Temp2, errors='coerce').isnull()]

这篇关于大 pandas 每日平均,大 pandas 。重新取样的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)