[英]How to resampling a data series with date time indexing in pandas
我是python的新手,正在研究熊猫。 我有一个GW2test.csv文件,其中包含日期,时间和其他每30分钟收集一次数据的列。 我需要为每日平均值重新采样数据。 CVS看起来像:
Date time P P3W P3W1 P2W
04/18/12 15:00 0 1.334 1.006
04/18/12 15:30 0 1.336 1.003
04/18/12 16:00 0 1.323 0.985
04/18/12 16:30 0 1.316 0.977
04/18/12 17:00 0 1.312 1.231 0.97
P是降水,并不总是零,P3W有一些未测量的值。 我所做的是:
`
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
df = pd.read_csv('GW2test.csv', parse_dates=[['Date','time']])
f = pd.DataFrame(df, columns=[ 'Date_time','P','P3E','P1W1', 'P1W', 'P2W'])
f.describe()
df1 = df.set_index('Date_time')
Daily= df1.resample('D', how=np**.mean)
Sel = Daily.ix[0:,['P']]
Sel.plot()
Sel = Daily.ix[0:,['P3W1']]
Sel.plot()
`
到目前为止,我的图以X表示每日频率,但以Y表示的值是错误的。 降水应该最多140次,最多只能增加3.5次(作为30分钟的值),我的P3W值正确,但显示不连续线,尽管我在整个期间都有测量值。 他们看起来像这样
请帮忙!
为什么不将Date
和time
保留为单独的列,然后仅对Date
执行groupby
并使用np.mean
汇总每个组? 这将产生仅按包含平均值的Date
索引的结果。 这同样的方法可以通过对成组的time
,并采取跨日均线,所以你可以很容易地看到平均就是所有的15:00
的意见,例如。
df.groupby("Date").agg(np.mean)
time
列的平均值可以忽略,也可以忽略该列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.