#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
Он отлично работает, когда я объединяю две функции одновременно.