gpt4 book ai didi

python - 带有实例变量的 Pandas 自定义访问器

转载 作者:行者123 更新时间:2023-12-05 07:16:06 25 4
gpt4 key购买 nike

我正在尝试 extend pd.DataFrame 具有一些额外的功能。我的方法运行良好,但我想将一些额外的数据存储为实例变量,但我遇到了意想不到的麻烦。

到目前为止,我有:

@pd.api.extensions.register_dataframe_accessor('foo')
class Foo:

def __init__(self, df):
self._df = df

@staticmethod
def load_data(arg):
data = doStuff(arg)
obj = pd.DataFrame(data)
# Remember how this object was made
obj.__dict__['arg'] = arg
return obj

(对 obj.__dict__ 的笨拙赋值,而不是仅仅说 obj.arg = arg,阻止 Pandas 将其视为试图创建一个专栏。我当我对 DataFrame 进行子类化时学会了这样做,这非常令人头疼。)

然后我做:

obj = Foo.load_data('stuff')
obj.arg
obj.foo.arg
obj.foo._df.arg

最后 3 行中的每一行都会导致 AttributeError。我知道我分配了属性(property)……它去哪儿了?

最佳答案

我通过在方法中说让它工作:

obj.foo.__dict__['arg'] = arg

然后:

obj.foo.arg

关于python - 带有实例变量的 Pandas 自定义访问器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59401511/

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