Почему преобразование столбца фрейма данных в категорию dtype прерывает функцию groupby

#python #python-3.x #pandas #dataframe #pandas-groupby

Вопрос:

У меня есть фрейм данных со следующими типами dtypes

 calendar_day         object
product_name         object
quantity             int64
flag                 int32
dtype: object
 

Я преобразую имя продукта в категорию

 DF["product_name"] = DF["product_name"].astype("category")

calendar_day         object
product_name         category
quantity             int64
flag                 int32
dtype: object
 

Я выполняю следующий запрос

 RESULT_DF = DF[DF['product'] == 'ABC']
RESULT_DF.groupby(['product','flag']).agg({'calendar_day': ['min', 'max'],'quantity':np.ma.average})
 

Этот запрос отлично работает, когда product_name он есть object , но просто терпит неудачу, когда он есть category .

Ошибка

Ошибка значения: Длина значений (1) не соответствует длине индекса (500)

Кто-нибудь может сказать мне, почему это произошло?

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

1. Можете ли вы опубликовать краткий пример вашей проблемы (например, используя только .head() ваши данные). Где-то в вашем коде вы получаете значение 1, где, вероятно, ожидаете получить 500. Мне нужно было бы посмотреть, что вы на самом деле делаете, чтобы быть в состоянии помочь больше.