Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2020 19:58:05

zantal
Зарегистрирован: 2019-04-16
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь разобраться с циклом for в pandas

 for (race, sex), sub_df in data.groupby(['race', 'sex']):
    print("Race: {0}, sex: {1}".format(race, sex))
    print(sub_df['age'].describe())

Уважаемые коллеги! Выше представлен один кусок кода из курса по pandas. Необходимо из dataset сформировать таблицу с указанием расы и пола человека. Я что-то не понял как работает этот код: что такое sub_df и почему мы передаём кортеж (race, sex).
Вообще, если не сложно, опишите на пальцах, механизм работы настоящего кода. А то я до конца ни оной строчки тут не понимаю.
Заранее большое спасибо!

Офлайн

#2 Янв. 23, 2020 20:55:06

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Прошу помочь разобраться с циклом for в pandas

zantal
Я что-то не понял как работает этот код: что такое sub_df, почему мы передаём кортеж (race, sex).
тут надо понимать что возвращает
  for x in data.groupby(['race', 'sex']):
    print(x)
сделай так и увидишь чтото типа такого:
 (('male', 'asian'),    Race  Sex   Age.....
N  asian         male   MM ...)
...........
где N номер строки в датасете для записи. MM возрвст ну и тд…
Соотствевенно for (race, sex), sub_df всего лишь способ распаковать в переменные выдачу итератора, в race, sex попадут, собвтеено, расса и пол, а в sub_df все остальное(это тоже датафрейм).



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 23, 2020 21:19:36)

Офлайн

#3 Янв. 24, 2020 08:48:25

zantal
Зарегистрирован: 2019-04-16
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь разобраться с циклом for в pandas

Спасибо огромное. Сейчас попробую!

Офлайн

#4 Янв. 24, 2020 10:32:27

zantal
Зарегистрирован: 2019-04-16
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь разобраться с циклом for в pandas

Тогда, если можно еще на такой вопрос:

1) вот в этом примере, который мне удалось найти в интернете, (ссылка:
приводится пример, где цикл for пробегает по уже сгруппированной по столбцам A и B таблице, то есть .groupby(). А почему в нашем примере в методе .groupby перед этим списком еще передаётся data. Что это и зачем?

 for (race, sex), sub_df in pd.groupby(data, ['race', 'sex']):
    print("Раса: {0}, пол: {1}".format(race, sex))
    print(sub_df['age'].describe())

Офлайн

#5 Янв. 24, 2020 10:32:55

zantal
Зарегистрирован: 2019-04-16
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь разобраться с циклом for в pandas

Офлайн

#6 Янв. 24, 2020 12:11:55

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Прошу помочь разобраться с циклом for в pandas

zantal
А почему в нашем примере в методе .groupby перед этим списком еще передаётся data. Что это и зачем?
потому что гладиолус ООП в пайтоне так реализована и запись вида instance_of_Class.method(*args) идентична Class.method(instance_of_Class, *args). По сути это просто разные формы записи одного и тогоже.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 24, 2020 12:21:14)

Офлайн

#7 Янв. 24, 2020 13:10:59

zantal
Зарегистрирован: 2019-04-16
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь разобраться с циклом for в pandas

PEHDOM
Спасибо тебе большое за развёрнутые и понятные ответы. Теперь я разобрался и всё понял. Ещё раз спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version