подмножество фрейма данных python по условиям

#python #pandas #numpy

#python #pandas #numpy

Вопрос:

Я пытаюсь выбрать строку имени со счетом> 250, которая здесь называется эффективной. Итак, мы попытаемся найти среднее значение его скорости

 t3=dfnew.groupby('name')['ratings']
t4=t3.count()
t5=t4[t4.values>250]
t6=t3.mean()
t6[(t6.index==t5.index)]
  

Очевидно, проблема в последней строке моего кода. Где я хочу сопоставить индекс t6 с индексом t5. Если они совпадают, сохраните его, в противном случае оставьте его. Это похоже на внутреннее соединение в SQL.

Что я должен сделать, чтобы изменить последнюю строку?

Предположим, что фрейм данных выглядит следующим образом

 input:
name ratings
    A  1
    A  2
    :
    A  251
    B  1
    B  2
    :
    B  230
  

таким образом, предполагаемый результат должен быть 126 ( (1 251)/2))

 Output
A  126
  

Комментарии:

1. Поскольку вы уже нашли другой способ решить свой вопрос, я просто даю вам краткое объяснение вашей проблемы: the two indices have different length.

Ответ №1:

 t3=dfnew.groupby('name')['ratings'].agg(['count','mean'])

t5=t3[t3['count']>250]
t5
  

Он отлично работает, когда я объединяю две функции одновременно.