#python #pandas
#python #pandas
Вопрос:
Я работал с фреймом данных в python и pandas, который содержит повторяющиеся записи в первом столбце. Фрейм данных выглядит примерно так:
sample_id qual percent
0 sample_1 10 20
1 sample_2 20 30
2 sample_1 50 60
3 sample_2 10 90
4 sample_3 100 20
Я хочу написать что-то, что идентифицирует повторяющиеся записи в первом столбце и вычисляет средние значения последующих столбцов. Идеальным результатом было бы что-то похожее на следующее:
sample_id qual percent
0 sample_1 30 40
1 sample_2 15 60
2 sample_3 100 20
Я боролся с этой проблемой весь день и был бы признателен за любую помощь.
Комментарии:
1. Не могли бы вы дважды проверить ожидаемый результат? Это не похоже на средние значения.
2. Вы правы. Я изменил фрейм данных, чтобы включить правильные средние значения. Спасибо!
3. Как мы справляемся с этим, если в фрейме данных есть дубликаты и не дубликаты, и вы хотите уменьшить дубликаты до их средних значений? Спасибо
Ответ №1:
groupby
sample_id
столбец и использование mean
df.groupby('sample_id').mean().reset_index()
или
df.groupby('sample_id', as_index=False).mean()
получить вас
Ответ №2:
Groupby будет работать.
data.groupby('sample_id').mean()
Затем вы можете использовать reset_index()
, чтобы заставить выглядеть точно так, как вы хотите.