データを抽出したい(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メソッド
を値の代入に使うこの書き方は、
読みやすいので好んで使っています。