pandasのDataFrameに独自メソッドを追加してmethod chainingを貫く (Pandas Flavor)

pandasでmethod chainigで書いていくとき、chainできなくて困る時がある。例えばDataFrameのindexをDateTimeにしたいとき、

df = ...#indexが'2021-09-06'などの文字列のDataFrame
df.index = pd.to_datetime(df.index)

こうすることになるが、これだとmethod chainできない...。
そんな時はPandas Flavorを使ってDataFrameに独自メソッドを追加。

import pandas_flavor as pf

#独自の拡張メソッドを作る
@pf.register_dataframe_method
def to_index_datetime(df):
    df.index = pd.to_datetime(df.index)
    return df

#使い方
after_df = (
    df
    ...色々chainして
    .to_index_datetime() #これでchainできる
)



* 参考

tomaugspurger.github.io

towardsdatascience.com

pypi.org