#python-3.x #pandas #dataframe
#python-3.x #pandas #фрейм данных
Вопрос:
Я хочу отфильтровать столбец рыночной капитализации, чтобы показывать только данные выше 40 000 000 и удалять остальные, но я получаю сообщение об ошибке каждый раз, когда пробую обычные методы фильтрации столбцов.
Ошибка типа: ‘<=’ не поддерживается между экземплярами ‘str’ и ‘int’
df = df.set_index('Symbol')
df = df.dropna(how='all').dropna()
df['MarketCap'] = df['MarketCap'].apply(lambda x: '{:.2f}'.format(x))
df["MarketCap"] <= 40000000
Ответ №1:
Попробуйте .loc
, затем преобразуйте в str
:
df = df.loc[df["MarketCap"] >= 40000000]
df['MarketCap'] = df['MarketCap'].apply(lambda x: '{:.2f}'.format(x))
Комментарии:
1. это сработало как по волшебству … большое вам спасибо. Пришлось исправить <= 40000000 на>=40000000
2. это потому, что, выполняя это,
'{:.2f}'.format(x)
вы неявно преобразуете данные вstr
, и сравнение междуstr
иint
не допускается.