df.agg(...)
принимает dict, где ключами dict являются имена столбцов, а значениями являются строки, которые выполняют желаемую агрегацию:
df_agg = df.agg({'keep_same': 'mode', 'get_max': 'max',
'get_min': 'min', 'get_avg': 'mean'})[df.columns]
Производит:
keep_same get_max get_min get_avg
0 1213 898 9 422.666667
Тогда вы просто добавляете df_agg
к df
:
df = df.append(df_agg, ignore_index=False)
Результат:
keep_same get_max get_min get_avg
0 1213 176 901 517.000000
1 1213 198 9 219.000000
2 1213 898 201 532.000000
0 1213 898 9 422.666667
Обратите внимание, что индекс добавленной строки равен 0
. Вы можете передать ignore_index=True
для добавления, если хотите.
Также обратите внимание, что если вы планируете многократно выполнять эту операцию добавления, она будет очень медленной. В этом случае существуют другие подходы, но для разовых или нескольких раз, добавление в порядке.