2012年7月24日火曜日

浦神と串本の日平均潮位差をpandasで



以前書いたpandasでの時系列処理の続き。バージョンアップ(これを書いてる時点でversion 0.8.1)により、さらに便利になった。

浦神と串本の日平均潮位差をプロットしてみる。前回のようにwebから直接読むこともできるが、今回はhttp://www.data.kishou.go.jp/db/kobe/kuroshio/chouisa/chouisa.datからchouisa.datをダウンロードしてそれを読むことにする。

下がプログラム。
read_psvでデータを読んでいる。
前回は日付とデータの間にあるスペースをスマートに処理できなかったが、sep='\s*' (任意の数のスペース)を使えばよかったらしい。
column=0(右端)をindexとして用い(index_col=0)、日付データとして解釈する(parse_dates=Trule)。
”-”を欠損値と解釈する。

version 0.8以降、月平均を計算するのが簡単になり、data.resample("M",how='mean')で良い。


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# read data
data=pd.read_csv("chouisa.dat",sep='\s*',skiprows=1,header=None,index_col=0,parse_dates=True,names=("date","chouisa"),na_values="-")

#monthly value
data2=data.resample("M",how='mean')

#plot
plt.subplot(111)
data["chouisa"].plot(style='b-',label="Daily")
data2["chouisa"].plot(style='r-',label="Monthly",linewidth=2)
plt.legend(loc='best')
plt.savefig("choisa.png")
plt.show()



0 件のコメント: