概要
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でそのまま扱える形式でインデックスが取れます。