Python 3.x 嵌套式录音中键上的OR和GROUPBY操作

Python 3.x 嵌套式录音中键上的OR和GROUPBY操作,python-3.x,pandas,Python 3.x,Pandas,我的字典里有一本字典。我的问题是我想对字典中的键('filter'和'filteer')0索引执行或操作。基于该结果,我想对字典索引1中的特定列应用groupby操作。 (例如,如果品牌(条件[0])==AMBI(条件[8]) (或)制造商(条件[1])==AMBI(条件[8])我想返回数据帧,并在该数据帧上对其中一列执行groupby操作。) 我的代码: import csv import pandas as pd import sys class sample: def cr

我的字典里有一本字典。我的问题是我想对字典中的键(
'filter'
'filteer'
)0索引执行
操作。基于该结果,我想对字典索引1中的特定列应用
groupby
操作。 (例如,如果品牌(条件[0])==AMBI(条件[8]) (或)制造商(条件[1])==AMBI(条件[8])我想返回数据帧,并在该数据帧上对其中一列执行groupby操作。)

我的代码:

import csv
import pandas as pd
import sys
class sample:
        def create_df(self, f):
                 self.z=pd.read_csv(f)
        def get_resultant_df(self, list_cols):
                 self.data_frame = self.z[list_cols[:]]
        def process_df(self, df, conditions):
                 resultant_df = self.data_frame   
                 if conditions[2] == 'equals':
                         new_df =resultant_df[resultant_df[conditions[1]] == conditions[3]]
                         return new_df
                 elif conditions[2] == 'contains':
                         new_df = resultant_df[resultant_df[conditions[1]].str.contains(conditions[3])]
                         return new_df
                 elif conditions[2] == 'not equals':
                         new_df = resultant_df[resultant_df[conditions[1]] != conditions[3]]
                         return new_df
                 elif conditions[2] == 'startswith':
                         new_df = resultant_df[resultant_df[conditions[1]].str.startswith(conditions[3])]
                         return new_df
                 elif conditions[2] == 'in':
                         new_df = resultant_df[resultant_df[conditions[1]].isin(resultant_df[conditions[3]])]
                         return new_df
                 elif conditions[2] == 'not in':
                         new_df = resultant_df[~resultant_df[conditions[1]].isin(resultant_df[conditions[3]])]
                         return new_df
                 elif conditions[2] == 'group':
                         new_df = list(resultant_df.groupby(conditions[0])[conditions[1]])
                         return new_df
                 elif conditions[2] == 'specific':
                         new_df = resultant_df.loc[resultant_df[conditions[0]] == conditions[8]]
                         return new_df
                 elif conditions[2] == 'same':
                         new_df = resultant_df[(resultant_df[conditions[0]] == conditions[8]) & (resultant_df[conditions[1]] == conditions[8])]
                         return new_df
                 elif conditions[2]=='trail':
                         new_df={0:{'filter'{'filter1':resultant_df.loc[resultant_df[conditions[0]] == conditions[8]]},'filteer':{'filter1':resultant_df.loc[resultant_df[conditions[0]] == conditions[8]]}},
                                 1:{'group':{resultant_df.groupby(new_df[0][filter])}}}
                         return new_df


if __name__ =='__main__':
        sample = sample()

      sample.create_df("/home/purpletalk/GrammarandProductReviews.csv")
        df = sample.get_resultant_df(['brand', 'reviews.id','manufacturer','reviews.title','reviews.username','id','dateAdded','reviews.rating'])
        new_df = sample.process_df(df, ['brand','manufacturer','trail','Windex', 'size', 'equal',8,700,'AMBI'])
        print (new_df[1][group])

谁能帮帮我吗?上面的代码返回错误,我想知道如何执行
操作。

您可能需要添加“pandas”标记(使用.loc()和data_frame进行猜测)。注意,您的process_df()函数没有返回任何内容,调用它的代码需要返回值。请展示一个示例数据集(尽可能少)和预期结果,因为从描述中无法猜测您想要实现的目标。发布多条注释寻求帮助没有帮助。相反,(a)请修复我已经指出的错误(流程_df中缺少返回值),(b)提供一个输入数据的示例,以及您期望的结果(同样,根据要求)。此外,请尝试修复发布代码中的缩进,以便它实际读取为有效的Python代码,您可以复制并试用。