0

パンダでの日時インデックス作成によるデータ系列のリサンプリング

私は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 の 1 日の頻度を示していますが、Y の値は間違っています。降水量は最大 140 で、3.5 (30 分の値として) までしか上がらず、P3W 値は正しいですが、全期間の測定値がありますが、不連続線を示しています。彼らはこのように見えます

助けてください!

4

1 に答える 1

0

Datetimeを別の列として残してから、 groupbyonを実行して、Dateを使用して各グループを集計してみnp.meanませんか? Dateこれにより、平均を含むだけでインデックス付けされた結果が生成されます。また、同じ方法を使用して、日付ごとにグループ化して平均を取ることができるため、たとえば、timeすべての観測値の平均が何であるかを簡単に確認できます。15:00

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

列の平均はtime無視することも、その列を除外することもできます。

于 2013-09-19T21:05:27.310 に答える