スポンサーリンク
Pandasで条件に合致した行の総和・平均・最大・最小
まずは、下記のようにデータフレームを作成します。
'col1'と'col2'の列名をつけています。
import pandas as pd data = pd.read_csv('in.txt', names=('col1', 'col2'))
col2の列の値が4以上のデータフレームを抽出しています。
print(data[data.col2 >= 4])
その上で、col2の列の総和
print(data[data.col2 >= 4].col2.sum())
col2の列の平均
print(data[data.col2 >= 4].col2.mean())
col2の列の最大値
print(data[data.col2 >= 4].col2.max())
col2の列の最小値
print(data[data.col2 >= 4].col2.min())
スポンサーリンク
サンプルコード
例えば、下記のin.txtがあったとします。
$ cat in.txt line1,1 line2,9 line3,3 line4,7 line4,8
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import pandas as pd data = pd.read_csv('in.txt', names=('col1', 'col2')) print(data) print("col2 >= 4のデータフレーム") print(data[data.col2 >= 4]) print("col2 >= 4のcol2の列の総和") print(data[data.col2 >= 4].col2.sum()) print("col2 >= 4のcol2の列の平均") print(data[data.col2 >= 4].col2.mean()) print("col2 >= 4のcol2の列の最大") print(data[data.col2 >= 4].col2.max()) print("col2 >= 4のcol2の列の最小") print(data[data.col2 >= 4].col2.min())
下記が実行結果になります。
$ ./sample.py col1 col2 0 line1 1 1 line2 9 2 line3 3 3 line4 7 4 line4 8 col2 >= 4のデータフレーム col1 col2 1 line2 9 3 line4 7 4 line4 8 col2 >= 4のcol2の列の総和 24 col2 >= 4のcol2の列の平均 8.0 col2 >= 4のcol2の列の最大 9 col2 >= 4のcol2の列の最小 7
スポンサーリンク