Проблемы с объектом «метод», на который нельзя подписаться в pandas — функции не выполняются

#python #pandas

#python #pandas

Вопрос:

В моем коде я сталкиваюсь с проблемой: я всегда получаю результат, что объект ‘method’ не поддается подписке. Проблема заключается в следующих функциях в более или менее сложной программе:

 def queryFruit(self,fruit):
        return self.result[self.result['FRUIT_TERM'].isin([fruit])]
    
def queryRelevance(self, fruit):
        onefruit = self.queryFruit(fruit)
        originparameters = pd.crosstab(onefruit['PARAMETER_NAME'], onefruit['COUNTRY_TERM']) >= 10
        validoriginparameters = originparameters.where(originparameters == True)
        validoriginparameters.dropna(axis=1, how='all', inplace=True)
        validoriginparameters.dropna(axis=0, how='all', inplace=True)
        list1 = list(validoriginparameters.columns.values)
        list2 = list(validoriginparameters.index.values)
        return list1, list2
  

На данный момент я не вижу леса для деревьев… У кого-нибудь есть совет?

Несколько замечаний / кода относительно self.result:

 def computeResult(self):
        self.result = self.getAnalyticalData
        log.debug('Query result successfully computed')
  

self.result отмечает pd.DataFrame, содержащий 15 столбцов (один из них: ‘FRUIT_TERM’).

Комментарии:

1. Есть self.result ли метод или атрибут в вашем классе? Если это метод, можете ли вы добавить код метода?

2. Я добавлю это в начальный пост. Пожалуйста, дайте мне несколько минут.

Ответ №1:

Вам нужно добавить круглые скобки к методу self.getAnalyticalData , иначе self.result сам метод не является результатом метода :

 def computeResult(self):
        self.result = self.getAnalyticalData()
        log.debug('Query result successfully computed')