python - Pandas DataFrame 的自定义方法

标签 python pandas dataframe oop methods

我想编写可以使用 df.method() 表示法在 pd.DataFrame df 上调用的自定义函数.

例如,

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

最佳答案

最好的办法是使用继承,即创建自己的继承自 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)

    return df_copy 

然后您将能够像您想要的那样调用您的方法:

df.my_method(col)

关于python - Pandas DataFrame 的自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74485623/

相关文章:

python - 如何将 TensorFlow (v. 2) Hub 中预训练的 KerasLayer 与 tfrecords 结合起来?

python - 如何替换Python表达式中变量的值,但不计算表达式?

python - 查找并替换 Pandas 数据框中的子字符串忽略大小写

python - 将嵌套字典从 json 转换为以值作为列的数据框

r - 将所有列转换为 data.frame 中的字符

python - Fillna 一次使用多种方法 - pandas

python - 与 Python 中的 unicode 混淆

python - Pandas - 检查列中的数字是否在行中

python - 访问 numpy 元组数组中的第一项

python - 在python中估计时间序列的任何解决方法吗?