今回は、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を設定」という、目的どおりの結果が得られる。