Что происходит в группе в пандах? - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу знать, как методы фильтрации, агрегирования и преобразования групповых объектов в пандах перебираются по фрейму данных

С этой целью я попробовал этот набор данных:

df = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")

И теперь я попыталсянапечатайте форму каждого объекта, который повторяют эти три метода.

для фильтра:

df.groupby('day').filter(lambda x: print(x.shape))
out: (19, 7)
 (87, 7)
 (76, 7)
 (62, 7)

Таким образом, x представляет собой фрейм данных для каждой группы.Достаточно справедливо

Для агрегата:

df.groupby('day').agg(lambda x: print(x.shape))
out: (19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)

Итак, aggreagate выполняет итерации по группам каждого столбца и столбца за столбцом.Я понимаю, что

Я не могу понять функционирование метода преобразования.Напечатав тип аналогично, я получаю это

df.groupby('day').transform(lambda x: print(x.shape))
out:(19,)
(19,)
(19,)
(19,)
(19,)
(19,)
(19, 6)
(87,)
(87,)
(87,)
(87,)
(87,)
(87,)
(76,)
(76,)
(76,)
(76,)
(76,)
(76,)
(62,)
(62,)
(62,)
(62,)
(62,)
(62,)

Как вы можете видеть, он проходит через первую группу для всех столбцов, а затем каким-то образом там появляется фрейм данных (19,6), а затем он больше не появляетсяи итерации, как правило, над группами.Пожалуйста, помогите мне понять, как метод transform делает то, что делает

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