gpt4 book ai didi

python - 从python中的Parent类继承pandas dataframe的属性

转载 作者:行者123 更新时间:2023-12-01 00:21:10 24 4
gpt4 key购买 nike

我有一个类,其中一个属性是 pandas 日期框架。

class AthletesJsonReader(object):
def __init__(self, df=None, # A lot of other irrelevant attributes )
self.df = df

以及编写它的方法。

    def pd_table(self):
d = {'Name': self.names, 'PTS': self.pts, 'REB': self.reb, 'AST': self.ast, 'STL':
self.stl,
'BLK': self.blk, 'FGM': self.fgm, 'FGA': self.fga, 'FG%': self.fgp, '3PM':
self.three_pm,
'3PA': self.three_attempted, '3P%': self.three_percent, 'FTM': self.ftm,
'FTA': self.fta, 'FT%': self.percent_ft}
self.df = pd.DataFrame(d)

当我尝试继承 self.df 并在另一个子类方法中使用它时,它不返回任何内容并且错误。

    def __init__(self):
draft.AthletesJsonReader.__init__(self)

def get_player_stats(self):
print(self.df)
player_name = input("enter player's name: ")
end_name = player_name.title()
player_stats = self.df.loc[self.df.Name == '{}'.format(end_name)]
print(player_stats)

输出:

None
AttributeError: 'NoneType' object has no attribute 'loc'

我查找了有关这里发生的事情的信息,但没有找到直接的答案/或者只是我不理解它们。例如:

How to subclass pandas DataFrame?

Subclassing a Pandas DataFrame, updates?

https://dev.to/pj_trainor/extending-the-pandas-dataframe-133l

最佳答案

您继承的是类,而不是实例。当您创建子类实例时,self.df 被初始化为None。您还需要在子类某处中调用self.pd_table()(或者在父类__init__中,因为它是由子初始值设定项调用的无论如何)。

例如,如果您有其他方式创建 self.df,但您想确保它在需要时存在,您可以这样做:

    def get_player_stats(self): 
if not self.df:
self.pd_table()
print(self.df)

注意:这与“子类化 pandas DataFrame”无关。如果您尝试执行类似 class MyClass(pd.DataFrame):

的操作,这将是相关的

关于python - 从python中的Parent类继承pandas dataframe的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58962751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com