#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)
. Таким образом, он будет включать индекс, значение и т.д....
..