Pandas Groupby использует разные методы агг для разных столбцов - PullRequest
0 голосов
/ 03 мая 2019

Вот сценарий:

  • У меня большой упорядоченный набор данных с 314 столбцами и более 300 000 строк для проблемы ML.

  • Я хочу сгруппировать данные по столбцу X (поставщики).

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

Желаемый результат:

  • Я хочу сгруппировать столбец X и объединить числовые столбцы по «среднему», некоторые столбцы по «последнему», а по горячим закодированным - по «сумме».Все по одному и тому же методу.

Так как мы говорим о наборе данных из 314 столбцов, я не могу просто создать dict, содержащий каждый столбец.

df_train.groupby('Supplier').agg({<some columns> : 'last', <some columns>: 'sum', <some columns>: 'mean' })

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

1 Ответ

0 голосов
/ 03 мая 2019

Вы можете использовать select_dtypes, чтобы получить числовые столбцы, и использовать их при понимании словаря.

numeric_cols = df_train.select_dtypes('numeric').columns

agg_dict = {c: 'sum' if c in numeric_cols else 'last' for c in df_train.columns}

grouped = df_train.groupby('Supplier').agg(agg_dict)

Что касается ваших столбцов с горячим кодированием,вам нужно будет предоставить больше информации о том, как они могут быть идентифицированы.

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