我想重构我的代码,并try 创建面向对象的基本数据帧操作设置.

df1 = pd.read_sql(query, conn)
class DataframeOperations():
    def __init__(self, df):
    self.df = df

    def rename_column(self, name:'string', name_adj:'string'):
        self.df.rename(columns = {name, name_adj}, inplace=True)
        return self.df

m1 = DataframeOperations(df1)
print(type(m1))

输出直到这一点

<main班.DataframeOperations'>

m1.rename_column('col1','col2')

运行此函数时,我遇到以下错误:

类型

推荐答案

在定义集合而不是字典的列中,请try 以下操作:

df1 = pd.DataFrame({'a':[1,3,4]})

class DataframeOperations():
    def __init__(self, df):
        self.df = df

    def rename_column(self, name:'string', name_adj:'string'):
        replace_dict = {name: name_adj}
        self.df.rename(columns =replace_dict , inplace=True)
        return self.df

m1 = DataframeOperations(df1)
print(type(m1))

m1.rename_column('a','b')

但总体而言,特别是对于OOP,您想要的是DataframeOperations继承自pd.数据帧:

class DataframeOperations(pd.DataFrame):

    def rename_column(self, name:'string', name_adj:'string'):
        replace_dict = {name: name_adj}
        self.rename(columns =replace_dict , inplace=True)
        return self

df1 = DataframeOperations({'a':[1,3,4]})
df1.rename_column('a','b')

Python相关问答推荐

如何获取Python synsets列表的第一个内容?

基于多个数组的多个条件将值添加到numpy数组

干燥化与列姆化的比较

polars:有效的方法来应用函数过滤列的字符串

如何在Python请求中组合多个适配器?

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

如何将一组组合框重置回无 Select tkinter?

PYTHON中的pd.wide_to_long比较慢

按条件计算将记录拆分成两条记录

Matplotlib中的曲线箭头样式

PYODBC错误(SQL包含-26272个参数标记,但提供了235872个参数,HY 000)

牛郎星直方图中分类列的设置顺序

PyTorch变压器编码器中的填充掩码问题

如何使用aiohttp获取图像并直接处理它而不保存它?

在Django管理后台保存模型时保存当前用户

如何进行序列的顺序减法,从初始合计减为零,从当前行值的前一个单元格减go

try 理解PyTorch运行错误:try 再次向后遍历图表

为什么我在解析pdf文件时会得到两组不同的坐标?

如何使用建议值设置不区分大小写的模型

有没有一种将数据从MariaDB导入到Python中的非内存密集型方法?