Отсутствует некоторая часть синтаксиса groupby().Python

Программы на Python
Ответить
Anonymous
 Отсутствует некоторая часть синтаксиса groupby().

Сообщение Anonymous »

Я посещаю онлайн-класс, и, похоже, в курсовой работе есть сбой, который, похоже, заимствован из разных версий Pandas. Код, который предоставляет курс, не запускается. Тем не менее, в курсе предусмотрен тип исправления или обновления для ускорения ремонта, но в одном случае это исправление/обновление кода не является необходимым, а в другой части оно работает неправильно.
Мы хотим сгруппировать планеты по типам, а затем разделить их на основе того, имеет ли планета магнитное кольцо. Таким образом, теоретически существует шесть групп, но на основе данных возникают только четыре фактически существующие группы. И как только у нас есть эти группы, мы хотим выполнить некоторые операции суммирования и суммирования.
Непосредственно перед этим было доставлено исправление кода, где нам сообщают, что во избежание ошибки нам необходимо настроить параметр для функции sum(), куда нам нужно вставить: (numeric_only=True). Хотя моя текущая IDE не выдает ошибку без этой настройки, вместо этого она просто объединяет нечисловые значения.
Но настоящая проблема заключается в том, что нас просят запустить код внизу блока с помощью функции agg(). Я думаю, что проблема связана с тем, что я пытаюсь выполнить математические операции с нечисловыми данными, в частности, столбец для «колец» имеет логический тип. Но хотя мне удалось настроить параметры для функций среднего и максимального значения по отдельности (так, чтобы они оценивали только числовые столбцы), я не могу выполнить эту настройку в функции agg(), поскольку у нее нет этого параметра. И, не имея возможности внести эту корректировку только для числовых значений в agg(), сама курсовая работа выдает ошибку.
И если я воспользуюсь своим собственным исправлением, как описано выше, и отделю среднее значение () и max() и выполнять их индивидуально — очевидно, я могу настроить этот параметр на «numeric_only=True» для каждого:
print(planets.groupby(['type', 'magnetic_field']).max(numeric_only=True))
print(planets.groupby(['type', 'magnetic_field']).mean(numeric_only=True))

Это дает все правильные данные, хотя и менее эффективно. Но разве эти две функции не должны иметь те же параметры, что и agg(), поскольку они здесь являются частью агрегатных функций pandas?
p>
И помимо этого вопроса, существует проблема воспроизведения результатов курсовой работы и ее правильного выполнения — я хочу, чтобы все данные находились в одном выходном кадре данных. В конечном итоге, если я разделю эти функции и настрою параметры индивидуально, то смогу собирать данные правильно — но гораздо менее эффективно. А курсовая работа требует, чтобы все результаты были распечатаны в одной и той же распечатке. Есть идеи, чего мне не хватает в этом синтаксисе, чтобы сделать это за одно выполнение? СПАСИБО!!
import numpy as np
import pandas as pd
data = {'planet': ['Mercury', 'Venus', 'Earth', 'Mars',
'Jupiter', 'Saturn', 'Uranus', 'Neptune'],
'radius_km': [2440, 6052, 6371, 3390, 69911, 58232,
25362, 24622],
'moons': [0, 0, 1, 2, 80, 83, 27, 14],
'type': ['terrestrial', 'terrestrial', 'terrestrial', 'terrestrial',
'gas giant', 'gas giant', 'ice giant', 'ice giant'],
'rings': ['no', 'no', 'no', 'no', 'yes', 'yes', 'yes','yes'],
'mean_temp_c': [167, 464, 15, -65, -110, -140, -195, -200],
'magnetic_field': ['yes', 'no', 'yes', 'no', 'yes', 'yes', 'yes', 'yes'] }

planets = pd.DataFrame(data)
P = planets.groupby(['type', 'magnetic_field']).agg(['mean', 'max'])
print(P)


Подробнее здесь: https://stackoverflow.com/questions/793 ... pby-syntax
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»