今回は、pandasデータフレームの値を条件によって変更する方法を紹介する。
サンプルデータフレームの用意
まずはサンプルデータフレームを用意しよう。
import pandas as pd
df = pd.DataFrame({
'count': [0, 4, 5, 2, 1],
'flg': [0, 0, 0, 0, 0]
}, index=['A', 'B', 'C', 'D', 'E'])
# count flg
# A 0 0
# B 4 0
# C 5 0
# D 2 0
# E 1 0
このデータフレームのうち、count列の値が4以上のデータに対し、flgを1にするという作業を行なっていく。
pandasのwhere関数
このような条件分岐の場合、pandasのwhere関数を使うのがシンプルだろう。
df['flg'] = df['flg'].where(df['count'] < 4, 1)
# count flg
# A 0 0
# B 4 1
# C 5 1
# D 2 0
# E 1 0
今回はflg列が変更対象となるので、df[‘flg’]に対しwhere関数を実行する。
where関数の第一引数には条件を指定、条件がTrueの場合は元の値のまま、Falseの場合は第二引数に指定した値により更新が行われる。
上記のコードを実行すると「countが4以上の場合、flgに1を設定」という、目的どおりの結果が得られる。