スポンサーリンク

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

スポンサーリンク