pandas valueError при использовании функции agg - PullRequest
0 голосов
/ 12 марта 2019

Я знакомлюсь с пандами и столкнулся с проблемой, на которую не могу найти ответ.

Я использую доступный здесь набор данных https://raw.githubusercontent.com/Shreyas3108/house-price-prediction/master/kc_house_data.csv

Затем я запускаю функцию df.describe(), которая выводит все, что должно без проблем.

Так как меня интересуют только мин, макс и разность мин / макс. Я использую функцию df.agg от pandas для получения минимального / максимального значения каждого столбца, выполнив следующий код

df.agg([min, max],axis=0)

Когда я запускаю это, я получаю сообщение об ошибке:

    ~/.virtualenvs/cv/lib/python3.6/site-packages/pandas/core/base.py in _aggregate_multiple_funcs(self, arg, _level, _axis)
    615         # if we are empty
    616         if not len(results):
--> 617             raise ValueError("no results")
    618 
    619         try:

ValueError: no results

Я не уверен, почему я получаю эту ошибку, когда df.describe() может найти мин / макс каждого столбца без проблем. Я искал пустые значения и значения NaN, а также искал строки, чтобы увидеть, не вызывали ли они проблему, и мои данные, похоже, их не имеют.

Буду признателен за любые указания, где я иду не так.

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Я попробовал приведенный ниже код и смог успешно выполнить, что вы упомянули в своем вопросе.

df = pd.read_csv('https://raw.githubusercontent.com/Shreyas3108/house-price-prediction/master/kc_house_data.csv')
df = df.agg([min, max]).T
CLM = ['max', 'min']
df = (df.drop(CLM, axis=1)
         .join(df[CLM].apply(pd.to_numeric, errors='coerce')))

df = num_df[num_df[CLM].notnull().all(axis=1)]
df['Diff'] = df['max'] - df['min']
df

Пожалуйста, попробуйте это и дайте мне знать, если это работает для вас.

0 голосов
/ 12 марта 2019

Проблема, скорее всего, не в df.agg, а в самом df. Вы можете позвонить df перед вызовом df.agg и посмотреть, действительно ли он содержит данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...