スポンサーリンク

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.year == 年(数字) の形式で、特定の年の行を抽出します

DataFrame[DataFrame.index.year == 年(数字) の形式で、特定の年の行を抽出します。
yearには、数字で年を指定できます。

例えば、1991年の行を抽出してprint出力する場合には、下記のように書きます。

print(DataFrame[DataFrame.index.year == 1991])

指定した年の行の総和を求める

sum()で総和を求めることができます。
例えば、1992年の行の総和を求める場合は下記のように書くことができます。

print(DataFrame[DataFrame.index.year == 1992].sum())

スポンサーリンク

指定した年の行の平均を求める

mean()で総和を求めることができます。
例えば、1993年の行の平均を求める場合は下記のように書くことができます。

print(DataFrame[DataFrame.index.year == 1993].mean())

指定した年の行の最大値を求める

max()で最大値を求めることができます。
例えば、1994年の行の最大値を求める場合は下記のように書くことができます。

print(DataFrame[DataFrame.index.year == 1994].max())

指定した年の行の最小値を求める

min()で総和を求めることができます。
例えば、1995年の行の最小値を求める場合は下記のように書くことができます。

print(DataFrame[DataFrame.index.year == 1995].min())

サンプルコード

例えば、下記のin.txtがあるとします。

 $ cat in.txt 
19910101,0
19910102,1
19920203,2
19920204,3
19920305,4
19930306,5
19930407,6
19930408,7
19940509,8
19940510,9
19940510,10
19950610,11
19950610,12
19950610,13

下記がサンプルコードになります。

 $ 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("1991年の行を抽出して出力")
print(DataFrame[DataFrame.index.year == 1991])

print("1992年の総和を出力")
print(DataFrame[DataFrame.index.year == 1992].sum())

print("1993年の平均を出力")
print(DataFrame[DataFrame.index.year == 1993].mean())

print("1994年の最大値を出力")
print(DataFrame[DataFrame.index.year == 1994].max())

print("1995年の最小値を出力")
print(DataFrame[DataFrame.index.year == 1995].min())

下記が実行結果になります。

 $ ./sample.py 
DataFrameの中身を出力
            Value
Date             
1991-01-01      0
1991-01-02      1
1992-02-03      2
1992-02-04      3
1992-03-05      4
1993-03-06      5
1993-04-07      6
1993-04-08      7
1994-05-09      8
1994-05-10      9
1994-05-10     10
1995-06-10     11
1995-06-10     12
1995-06-10     13
1991年の行を抽出して出力
            Value
Date             
1991-01-01      0
1991-01-02      1
1992年の総和を出力
Value    9
dtype: int64
1993年の平均を出力
Value    6.0
dtype: float64
1994年の最大値を出力
Value    10
dtype: int64
1995年の最小値を出力
Value    11
dtype: int64

スポンサーリンク