python - 方法链接和方法返回值
问题描述
这是关于 Python 类方法链接的一般问题。我有一个执行一些数据整理操作并返回方法的数据框的类。我正在尝试在创建数据框对象后使用方法链接方法,就像 Pandas 一样。但是,我似乎遇到了一些问题。这是该类中几个方法的简单示例:
class Data:
def __init__(self, df):
self.df = df
def remove_rows(self, col):
df = (perform_some_operations)
return df
def collapse(self, cols):
df = (perform_some_operations)
return df
所以我可以这样使用:
df = Data(df)
df = df.remove_rows(col_1)
df = df.collapse(col_1)
但是,如果我想像这样使用它:
df = df.remove_rows(col_1).collapse(col_1)
我会得到错误。现在,如果我self
从这些方法返回,我可以将它们链接在一起,但输出是Data
对象而不是数据框。
在Pandas
中,您可以执行以下操作:
df = pd.read_csv('data.csv')
df = df.rename(columns={'col_1':'COL_1'}).drop(columns=['COL_1'])
并且
df = df.rename(columns={'col_1':'COL_1'})
df = df.drop(columns=['COL_1'])
我想了解如何创建允许我链接操作但也可以在需要时单独使用它们来获取值的方法。我做了一些研究,似乎你可以做一个或另一个,但如果你Pandas
举个例子,你可以同时做。
解决方案
您需要在方法中使用 self.df 像这样:
class Data:
def __init__(self, df):
self.df = df
def remove_rows(self, col):
self.df = (perform_some_operations)
return self.df
def collapse(self, cols):
self.df = (perform_some_operations)
return self.df
推荐阅读
- android - Android Studio LayoutParams.weight 不起作用
- wordpress - 带有连字符分隔的 slug 的 Wordpress 自定义帖子类型永久链接返回 404 错误
- reactjs - Next.js + Redux:在服务器端获取的数据永远不会移动到页面道具
- php - 尝试使用 PHP 将带有一些空字段的 CSV 上传到 MySQL DB
- java - 默认值取决于列类型 mysql
- authentication - 如何让 Swagger UI 让我提供身份验证标头?
- keyboard - 当我在 SwiftUI 中点击它时,TextField 的键盘不显示
- html - :hover 问题
- python - Gekko 找不到小问题的解决方案
- javascript - 在这种特殊情况下(通过共享调用),Javascript 会发生什么?