#python #pandas
#python #pandas
Вопрос:
У меня есть фрейм данных pandas в приведенном ниже формате. Для каждой группы в col1 я пытаюсь вычислить среднее значение ‘price’ и назначить его той же группе, но для года ‘2015’ (в результирующем фрейме данных ниже). Этот результат должен быть добавлен к исходному фрейму данных.
Я пробовал это, но не уверен, как назначить промежуточные результаты, создав для этого отдельную строку.
df_make_year.apply(lambda x: x.groupby('Col1')['price'].mean())
col1 year price
XXX 2016 4633.028506
XXX 2017 4805.72567
YYY 2016 4919.385966
YYY 2017 4959.816429
YYY 2018 4987.046863
Результат (добавлен к приведенному выше фрейму данных):
XXX 2015 4719
YYY 2015 4955
Ответ №1:
Вы можете сделать append
после groupby
assign
df = df.append(df.groupby('col1').agg({'col1':'first', 'price':'mean'}).assign(year=2015).reset_index(drop=True),sort=True)