pandas.DataFrame内を変数で検索し、該当する行を取得する。


pandas.DataFrameから、該当する文字列がある行を取得する方法として、query()メソッドがある。

df.query('name == "Suzuki"')

上記のnameに対象の列名、そして==の後に""で囲った検索する文字列を入れればOK。

ただ、for in で検索する文字列をループさせる、という処理をしたかったので、変数を入れる必要があった。

当然、

search_name = 'Suzuki'
df.query('name == search_name')

をやったらエラーになる。

調べると、query()で変数を使うには、@をつければいいらしいので、

search_name = 'Suzuki'
df.query('name == @search_name')

これでできました。