Pandas: вычисление средних значений повторяющихся записей в фрейме данных

#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() , чтобы заставить выглядеть точно так, как вы хотите.