スポンサーリンク
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.weekday_name == '曜日'の形式で、特定の曜日の行を抽出します
DataFrame[DataFrame.index.weekday_name == '曜日'の形式で、特定の曜日の行を抽出します。
weekday_nameには、英語の文字列で曜日を指定できます。
例えば、日曜日の行を抽出してprint出力する場合には、下記のように書きます。
print(DataFrame[DataFrame.index.weekday_name == 'Sunday'])
指定した曜日の行の総和を求める
sum()で総和を求めることができます。
例えば、月曜日の行の総和を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.weekday_name == 'Monday'].sum())
スポンサーリンク
指定した曜日の行の平均を求める
mean()で総和を求めることができます。
例えば、火曜日の行の平均を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.weekday_name == 'Tuesday'].mean())
指定した曜日の行の最大値を求める
max()で最大値を求めることができます。
例えば、水曜日の行の最大値を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.weekday_name == 'Wednesday'].max())
指定した曜日の行の最小値を求める
min()で総和を求めることができます。
例えば、木曜日の行の最小値を求める場合は下記のように書くことができます。
print(DataFrame[DataFrame.index.weekday_name == 'Thursday'].min())
サンプルコード
例えば、下記のin.txtがあるとします。
$ cat in.txt 20180101,0 20180102,1 20180103,2 20180104,3 20180105,4 20180106,5 20180107,6 20180108,7 20180109,8 20180110,9 20180111,10 20180112,11 20180113,12 20180114,13 20180115,14 20180116,15 20180117,16 20180118,17 20180119,18 20180120,19 20180121,20 20180122,21
下記がサンプルコードになります。
$ 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("日曜日の行を抽出して出力") print(DataFrame[DataFrame.index.weekday_name == 'Sunday']) print("月曜日の総和を出力") print(DataFrame[DataFrame.index.weekday_name == 'Monday'].sum()) print("火曜日の平均を出力") print(DataFrame[DataFrame.index.weekday_name == 'Tuesday'].mean()) print("水曜日の最大値を出力") print(DataFrame[DataFrame.index.weekday_name == 'Wednesday'].max()) print("木曜日の最小値を出力") print(DataFrame[DataFrame.index.weekday_name == 'Thursday'].min())
下記が実行結果になります。
$ ./sample.py DataFrameの中身を出力 Value Date 2018-01-01 0 2018-01-02 1 2018-01-03 2 2018-01-04 3 2018-01-05 4 2018-01-06 5 2018-01-07 6 2018-01-08 7 2018-01-09 8 2018-01-10 9 2018-01-11 10 2018-01-12 11 2018-01-13 12 2018-01-14 13 2018-01-15 14 2018-01-16 15 2018-01-17 16 2018-01-18 17 2018-01-19 18 2018-01-20 19 2018-01-21 20 2018-01-22 21 日曜日の行を抽出して出力 Value Date 2018-01-07 6 2018-01-14 13 2018-01-21 20 月曜日の総和を出力 Value 42 dtype: int64 火曜日の平均を出力 Value 8.0 dtype: float64 水曜日の最大値を出力 Value 16 dtype: int64 木曜日の最小値を出力 Value 3 dtype: int64
スポンサーリンク