我想撰寫可以pd.DataFrame df使用df.method()符號呼叫的自定義函式。
例如,
def my_pd_method(df: pd.DataFrame, col: str)->pd.DataFrame:
'''apply my_function to df[col] of df'''
df_copy = df.copy(deep = True)
df_copy[col] = df_copy[col].apply(lambda x: my_function(x), axis = 1)
return df_copy
在此之后,我可以運行命令
PandasObject.my_pd_method = my_pd_method
將 定義my_pd_method為 pd 方法。
在此之后,df.my_pd_method(col)將按預期運行。
有沒有什么方法可以在一個函式中做到這一點,我可以把它放在一個庫中,匯入它并開始使用它,而不必運行PandasObject.my_pd_method = my_pd_method?
uj5u.com熱心網友回復:
你最好的辦法是使用繼承,即創建你自己的自定義類,它繼承自 pandas DataFrame 類。
例子:
class CustomDataFrame(pd.DataFrame):
def my_method(self, col):
df_copy = self.copy(deep = True)
df_copy[col] = df_copy[col].apply(lambda x: my_function(x), axis = 1)
回傳 df_copy 然后你就可以像你想要的那樣呼叫你的方法:
df.my_method(col)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/537391.html
