Как получить доступ к столбцам после операторов groupby и agg? - PullRequest
0 голосов
/ 10 апреля 2020

Полученный DataFrame имеет столбец для каждого элемента agg в каждом столбце. Формат, который я хочу, - это таблица с 3 столбцами (albcircu, mean, count), а не 5.

Код, который у меня есть:

data = read_csv_file()
valor = data[['albcircu', 'litros']] 
valor[['albcircu', 'litros']].groupby(valor['albcircu']).agg(['count', 'mean'])

Минимальный воспроизводимый пример может быть таким:

import pandas as pd
alb = [1800200139, 1800700023, 1800700077, 1800700119, 1800600011, 1800600091, 1800300190, 1800200054, 1802500015, 1800500078, 1800400087, 1800500035, 1800800169, 1800200002, 1800500035, 1800500060, 1800600129, 1800600182, 1802500077, 1800300179]
litros = [400, 500, 500, 452, 1000, 917, 600, 1600, 500, 400, 500, 1500, 444, 500, 500, 500, 500, 500, 500, 974]
data = pd.DataFrame({'albcircu':alb,'litros':litros})
output = data[['albcircu','litros']].groupby(data['albcircu']).agg(['count','mean'])
output #this is because in jupyter this prints the data output   

Спасибо.

1 Ответ

1 голос
/ 10 апреля 2020

У вас есть мультииндекс на столбцах в результате операции agg. Вы можете объединить их и переименовать столбцы следующим образом. Идея заключается в том, что df.columns будет возвращать список кортежей, поэтому вы перебираете этот список и комбинируете кортежи.

df.columns = [f'{a}_{b}' for a, b in df.columns]

Кроме того, есть более простой способ сделать agg операция.

data.groupby('albcircu').agg({'litros': ['count', 'mean']})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...