这是一个关于Python类方法链接的一般性问题。我有一个类,它执行一些数据争用操作,并为这些方法返回一个数据帧。我正在尝试在创建dataframe对象后使用这些方法建立方法链,就像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 像这样:
相关问题 更多 >
编程相关推荐