Фильтрация столбцов с помощью Python

#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 не допускается.