Dataframe 作为 class 属性,如何使用 class 函数中的 pandas 来 select 部分?

Dataframe as class attribute, how to select portions of it with pandas in class function?

我有类似的东西

class Cheese(object):
    def __init__(self,df):
       self.df = df ##df is a pd.DataFrame

我想 self.df 的 select 部分基本上(class 中的一个函数)在一个函数中,让我们说:

def cheese_selection(self, cheez):
     dftemp = self.df[self.df['Fromage'] == cheez]
     return dftemp

Cheese or no cheese 我正在寻找这个特定问题的答案而不是替代方案 :D - 程序告诉我 class 没有 getitem 但我试图覆盖它,但它以某种方式未能给我非空数据框(将 def getitem(self, key) 中的键声明为 [ 是否有意义? =27=]['Fromage'] == cheez,我不这么认为。当然所有getitem前后都有下划线) 你能给我一个解释和解决方案吗?我想问题出在数据框上——也许它可以与 numpy 一起使用,但我真的在寻找这个具体的答案:D 谢谢。

您的示例运行良好:

class Cheese(object):
    def __init__(self,df):
       self.df = df ##df is a pd.DataFrame
    def cheese_selection(self, cheez):
         dftemp = self.df[self.df['Fromage'] == cheez]
         return dftemp

当传递一个 DataFrame 时:

In [11]: df = pd.DataFrame([["Cheddar"], ["Stilton"]], columns=["Fromage"])

In [12]: c = Cheese(df)

In [13]: c.cheese_selection("Stilton")
Out[13]:
   Fromage
1  Stilton

要使用 __getitem__ 等,您必须 subclass DataFrame.