Pandas .agg () отбрасывание столбцов (лямбда-функция) - PullRequest
1 голос
/ 17 февраля 2020

У меня есть df (df.shape = (14762, 35)).

Number    Day        Colour   City ...
123       Monday     Red      London ...
234       Monday     Blue     Paris ...
234       Wednesday  Yellow   Paris ... 
345       Tuesday    Green    Berlin ...

Я пытаюсь сгруппировать и агрегировать df для получения

Number    Day                Colour        City ...
123       Monday             Red           London ...
234       Monday, Wednesday  Blue, Yellow  Paris ...
345       Tuesday            Green         Berlin ...

Я использую

df.groupby('Number').agg(lambda s: ', '.join({*s}))

Однако мой новый df имеет форму (5435, 22). Проблема в агрегированном шаге лямбда-функции. Групповой шаг работает отлично. Просто интересно, почему .agg или .join могут отбрасывать определенные столбцы. Я читал о неприятных колонках в групповом режиме, но не думаю, что это проблема.

Я напечатал .dtypes, а удаляемые столбцы - object, int64 и float64.

Я использую Python 3.6.9 и pandas 0.25.3.

1 Ответ

1 голос
/ 17 февраля 2020

Я бы ожидал, что float64 и int64 будут отброшены, так как функция join повысит TypeError. Возможно, вы столкнулись с той же проблемой, то есть с невозможностью использовать join в других столбцах object.

Это можно исправить, изменив функцию агрегирования на -

lambda x: ', '.join([str(i) for i in x])

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