繁体   English   中英

如何在熊猫中使用日期时间索引重新采样数据系列

[英]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值正确,但显示不连续线,尽管我在整个期间都有测量值。 他们看起来像这样

请帮忙!

为什么不将Datetime保留为单独的列,然后仅对Date执行groupby并使用np.mean汇总每个组? 这将产生仅按包含平均值的Date索引的结果。 这同样的方法可以通过对成组的time ,并采取跨日均线,所以你可以很容易地看到平均就是所有的15:00的意见,例如。

df.groupby("Date").agg(np.mean) 

time列的平均值可以忽略,也可以忽略该列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM