scikit-learnのアップデートでPandasデータフレームのまま前処理が可能に
発表から1か月経っているので、Python界隈ではすでに知れ渡っているのかもしれませんが。
Scikit-Learn’s Transformers Now Output Pandas Dataframes!という記事がありました。記事によると、10月17日にscikit-learn開発チームが、「今後、sklearnの各種TransformerでPandasデータフレーム形式の出力ができるようになる」と発表したそうです。1
これは、開発版において、StandardScaler()
などのTransformerに、set_output()
というメソッド (API) が追加されたことによります。
Transformerオブジェクトを作成する際に、set_output(transform="pandas")
と指定することで、Pandasデータフレームを受け取って、出力もデータフレームで返すようになります。開発版をインストールしないと使えません2が、以下のようなことができるようになります (ドキュメントの丸写しですが)。
|
|
これまでは、PandasとScikit-Learnの連携が部分的だったので、NumPy配列を介してデータをやり取りしていましたが、Scikit-LearnのTransformersがPandasデータフレームでの入出力に対応すると、より効率的に前処理プログラムを記述できますね。まだ正式リリースではないですが、研修教材も、そういうのを把握したうえで更新していかなくてはなりません。