ValueError: операнды не могут быть переданы вместе с формой при вызове pands value_counts () для объекта groupby

Перед вызовом super.onPostResume () просто вызовите super.onPostResume () перед отображением фрагмента или переместите свой код в метод onPostResume (). Это решает проблему!

1
задан Sally 28 February 2019 в 14:08
поделиться

1 ответ

Проблема, кажется, с ненаблюдаемыми категориями. Из документации pandas по groupby:

При использовании категориального группировщика (в качестве отдельного группировщика или в составе нескольких группировщиков) наблюдаемое ключевое слово определяет, следует ли возвращать декартово произведение всех возможных значений группировщиков. (наблюдаемый = ложный) или только те, которые являются наблюдаемыми группировками (наблюдаемый = истинный).

Расчет декартового произведения в моем конкретном случае в конечном итоге приводит к ошибке вещания. Вот почему некоторые столбцы работают, а другие нет: у тех столбцов, которые работают, нет никаких ненаблюдаемых категорий, в то время как у тех, которые не работают, есть ненаблюдаемые категории.

Чтобы избежать проблем с этим, установите observed = True при группировке. Это означает, что groupby будет использовать только наблюдаемые категории (то есть те категории, для которых существуют записи). В моем случае это было бы:
allfactor = dataframe.groupby(factor, observed=True)[reference_area].value_counts()

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

0
ответ дан Sally 28 February 2019 в 14:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: