やましなぶろぐ

pandas.DataFrame.pipeを使用してメソッドチェーン内で自分自身を参照する

メソッドチェーンで自分自身を参照したいことがある

🕒 Last mod: 2021-01-03


1. メソッドチェーンで自分自身を参照したいことがある。

メソッドチェーンの途中で自分自身を参照したい場合がある。

例えば現状の列名一覧を取得する場合。

このような場合はpandas.DataFrame.pipeを使用することで実現できる。

2. 実例

メソッドチェーン内で列名を変換する。

既存の列名のprefixに’New_’を追加する。

pipeの中でラムダ文とset_axisを使用しています。

プログラムは下記のようになります。

import pandas as pd
from sklearn import datasets

boston = datasets.load_boston()

boston_df = pd.DataFrame(
    boston.data,
    columns=boston.feature_names,
)

new_boston_df = (
    boston_df
    .pipe(
        lambda df: (
            df.set_axis(
                [
                    'New_' + c
                    for c
                    in df.columns
                ],
                axis=1,
                inplace=False,
            )
        )
    )
)