#python #pandas #csv #filter #xlsx
Вопрос:
У меня проблема с тем, как фильтровать точки данных xlsx и csv с помощью панд.
import pandas as pd df = pd.read_excel("Wind.xlsx") df.head() filter = df[["WindSpeed"] gt; 2] ew=df[filter] print(ew)
Почему он не вернет значение больше 2?
Результатом является ошибка, которая заключается в следующем:
Ошибка типа: «gt; » не поддерживается между экземплярами «список» и «int»
Ответ №1:
Воспользуйся
filter = df["WindSpeed"] gt; 2
Комментарии:
1. Я уже пробовал.. Затем он вернет следующую ошибку: ошибка типа: «gt; » не поддерживается между экземплярами «str» и «int»
2. @ФредерикН. Педерсен, ваша ошибка предполагает, что в столбце скорость ветра есть значения, которые не являются числовыми. Что возвращает df.dtypes для этого столбца?
3. Первая строка файла — это заголовок-может быть, в этом проблема?
4. Чем, вероятно, вам придется выполнить кастинг в «int»
5. Это должно быть потому
Windspeed
, что имеет тип string. Попробуйfilter = df["WindSpeed"].astype('int') gt; 2
.
Ответ №2:
Попробуй это
filter = df[df['WindSpeed'] gt; 2]
Комментарии:
1. Я получаю следующую ошибку: ошибка типа: «gt; «не поддерживается между экземплярами «str» и «int»
2. Проблема в том, что скорость ветра имеет тип string, поэтому вам нужно преобразовать ее в тип int. Поэтому вам следует использовать df[df[‘Скорость ветра’].astype(int) gt; 2]
3. У меня есть свой ответ. Спасибо за ваш вклад 🙂