LoginSignup
4
5

More than 5 years have passed since last update.

pandasのデータフレーム/シリーズ中の条件に一致した項目のインデックスを求める

Posted at

概要

pandasのデータフレームorシリーズから、条件に一致した項目のインデックスを返す方法を紹介します。

結論

df.ix[[df.ix[:,0] == "hoge"],:].index[0]

解説

おさらい

df.ix[[df.ix[:,0] == "hoge"],:]

といった構文はご存知かと思いますが、ここでは、純粋にインデックスを返す方法を記したいと思います。
ちなみに、上の構文は「0列目が"hoge"の行を返す」という意味です。

本編

上の結果はpandasのデータフレームorシリーズで返されます(データフレームを参照しているならデータフレーム、シリーズを参照しているならシリーズ)。

#データフレーム
df.ix[[df.ix[:,0] == "hoge"],:] 
#最外側のixで列を:としているため複数列指定になるので、結果はデータフレームで返ります

ここで、

df.ix[[df.ix[:,0] == "hoge"],:].index

としてみると、条件に合致したデータフレームのインデックスがそのまま返されます。複数の項目が条件と合致していれば大きさが1より大きいシリーズが返ってきます。

そこで、

df.ix[[df.ix[:,0] == "hoge"],:].index[0]

とすると、Pythonでそのまま扱える形式でインデックスが取れます。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5