スポンサーリンク
indexがdatetime型にしてDataFrameを作成する
まずは、下記のように、indexがdatetime型にしてDataFrameを作成します。
参考:pandas.read_csv()のindex_colの指定とparse_dates=Trueで、インデックスの列をdatetime型に変換
DataFrame = pd.read_csv('in.txt', names=('Date', 'Value'), index_col='Date', parse_dates=True)
スポンサーリンク
DataFrame[DataFrame.index.month == 月(数字) の形式で、特定の月の行を抽出します
DataFrame[DataFrame.index.month == 月(数字) の形式で、特定の月の行を抽出します。
monthには、数字で月を指定できます。
例えば、1月の行を抽出してprint出力する場合には、下記のように書きます。
print(DataFrame[DataFrame.index.month == 1])
指定した月の行の総和を求める
sum()で総和を求めることができます。
例えば、2月の行の総和を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.month == 2].sum())
スポンサーリンク
指定した月の行の平均を求める
mean()で総和を求めることができます。
例えば、3月の行の平均を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.month == 3].mean())
指定した月の行の最大値を求める
max()で最大値を求めることができます。
例えば、4月の行の最大値を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.month == 4].max())
指定した月の行の最小値を求める
min()で総和を求めることができます。
例えば、5月の行の最小値を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.month == 5].min())
サンプルコード
例えば、下記のin.txtがあるとします。
$ cat in.txt 20160101,0 20160102,1 20160203,2 20160204,3 20160305,4 20160306,5 20160407,6 20160408,7 20160409,8 20160510,9 20160511,10 20160512,11
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import pandas as pd DataFrame = pd.read_csv('in.txt', names=('Date', 'Value'), index_col='Date', parse_dates=True) print("DataFrameの中身を出力") print (DataFrame) print("1月の行を抽出して出力") print(DataFrame[DataFrame.index.month == 1]) print("2月の総和を出力") print(DataFrame[DataFrame.index.month == 2].sum()) print("3月の平均を出力") print(DataFrame[DataFrame.index.month == 3].mean()) print("4月の最大値を出力") print(DataFrame[DataFrame.index.month == 4].max()) print("5月の最小値を出力") print(DataFrame[DataFrame.index.month == 5].min())
下記が実行結果になります。
$ ./sample.py DataFrameの中身を出力 Value Date 2016-01-01 0 2016-01-02 1 2016-02-03 2 2016-02-04 3 2016-03-05 4 2016-03-06 5 2016-04-07 6 2016-04-08 7 2016-04-09 8 2016-05-10 9 2016-05-11 10 2016-05-12 11 1月の行を抽出して出力 Value Date 2016-01-01 0 2016-01-02 1 2月の総和を出力 Value 5 dtype: int64 3月の平均を出力 Value 4.5 dtype: float64 4月の最大値を出力 Value 8 dtype: int64 5月の最小値を出力 Value 9 dtype: int64
スポンサーリンク