データを抽出したい(pandas.DataFrame.loc

1data.loc["行ラベル", "列ラベル"]

pandas.DataFrame.locで、行ラベル(=インデックス)と列ラベルを指定して、データを抽出できます。

行ラベルと列ラベルはリストでも指定できます。

1data.loc[["行1":"行200"], ["列1", "列5"]]

条件を指定したい

1# data : 検出器からの信号の波形データを読み込んだデータフレーム
2name = "signal"
3data[name] = 0 # mV;カラムを追加;初期値を与える
4isT = data.query("height > 100")
5data.loc[isT, name] = data["height"]

上記は、僕が実際に使うことが多いケースをサンプルにしてみました。 ここでは、宇宙線検出器の信号をオシロスコープで確認したときの波形データに対して、 ある閾値を越えた信号だけを抽出しています。

1行でスマートに書く方法があるのかもしれませんが、 データの抽出はqueryメソッドにまかせて、 locメソッドを値の代入に使うこの書き方は、 読みやすいので好んで使っています。