Я получаю TypeError при использовании groupby и функцию для удаления выбросов:
def is_outlier(s):
lower_limit = s.median() - (s.std() * 3)
upper_limit = s.median() + (s.std() * 3)
return ~s.between(lower_limit, upper_limit)
df1 = df[~df.groupby('objectName')['price'].apply(is_outlier)]
print(df1)
Я отфильтровал строки NaN в столбце price
с: df = df[np.isfinite(df['price'])]
, что я должен сделать, чтобы он вернулсяправильно?Спасибо за помощь заранее.
File "C:\Users\User\Anaconda3\lib\site-packages\pandas\core\generic.py", line 1143, in __invert__
arr = operator.inv(com._values_from_object(self))
TypeError: bad operand type for unary ~: 'float'
Это то, что я получаю с df['price'].describe()
, кажется вполне нормальным.
count 10755.000000
mean 7.135314
std 3.844756
min 1.000000
25% 4.700000
50% 6.000000
75% 8.500000
max 49.000000
Ссылки, связанные с:
TypeError: неверный тип операнда дляунарный ~: float
TypeError: неверный тип операнда для унарного ~: 'float'