различные агрегации внутри pd groupby в python

#python #pandas

#python #pandas

Вопрос:

У меня есть такой df, и мне нужно выполнить несколько агрегаций в groupby, включая объединение строк и различные операции с одними и теми же столбцами

 import pandas as pd
sample = pd.DataFrame({'group':['a']*3 ['b']*6, 'time':[1,2,4,6,7,8,9,12,15],'type':['a','x','b','y','x','a','y','b','x']})
sample
 

это то, что я пробовал, и результат содержит ненужный индекс и n . есть ли хороший способ не включать их?

 sample.groupby('group').agg(ts = ('time',lambda x: ''.join(str(x))), 
                         type_max = ('type','max'), type_count = ('type','count'))
 

введите описание изображения здесь

Комментарии:

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

Ответ №1:

Преобразование с помощью .astype(str) :

 sample.groupby('group').agg(ts = ('time',lambda x: ''.join(x.astype(str))), 
                            type_max = ('type','max'), 
                            type_count = ('type','count'))
 

Вывод:

              ts type_max  type_count
group                               
a           124        x           3
b      67891215        y           6
 

Комментарии:

1. str(x) возвращает строковое представление ряда, в значительной степени то, что вы получаете print(x) . Таким образом, он будет включать индекс, значение и т.д. ... ..