首页 > 解决方案 > 扩展 pandas 时遇到问题

问题描述

我正在尝试“扩展熊猫”功能,但似乎无法让它工作。我正在尝试遵循熊猫提供的示例。

关联

到目前为止,我的代码是假数据

import pandas as pd
data =pd.DataFrame({'ID1':[1,2], 'ID2':[3,4], 'value':[5,6]})
@pd.api.extensions.register_dataframe_accessor("ext")
class my_extension:
    def __init__(self, pandas_obj):
        self.dataset = pandas_obj
    @property
    def retrieve_ID(self, ID):
        return self[self['ID1']==ID]

    def method2(self, ID):
        return self[self['ID2']==ID]

基本上,我想要的最终结果是输入“data.ext”。并点击选项卡并查看retrieve_ID 和method2 作为我的功能的一个选项

标签: pythonpandas

解决方案


很确定你错过了这个self.dataset部分(并且不认为你需要@property那里)。顺便说一句,这应该工作:

import pandas as pd
data =pd.DataFrame({'ID1':[1,2], 'ID2':[3,4], 'value':[5,6]})
@pd.api.extensions.register_dataframe_accessor("ext")
class my_extension:
    def __init__(self, pandas_obj):
        self.dataset = pandas_obj
    #@property
    def retrieve_ID(self, ID):
        return self.dataset[self.dataset['ID1']==ID]

    def method2(self, ID):
        return self.dataset[self.dataset['ID2']==ID]

推荐阅读