Преобразование типов здесь не при чем.
вот здесь ты print(df[['market_cap'] > 0])
Ты выполняешь операцию не с массивом а со списком. Списки ['market_cap'] > 0 такого не поддерживают. Если ты хотел выбрать подсет фрейма где капитализация больше нуля то пропустил df еще один.
print(df[df['market_cap'] > 0])