Как отфильтровать Coulmns, даже если одно значение в столбце не NaN - PullRequest
0 голосов
/ 20 октября 2019

У меня есть Pandas Dataframe с 500 строками и 502 столбцами, ниже приведен краткий обзор имен столбцов:

['cluster', 'question1', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ....,500]

Кластер - Номер кластера Вопрос1 - Обозначает текстовые столбцы данных (0 - 500)- содержит значения косинуса сходства каждого из 500 Вопросов друг с другом.

для каждого вопроса, я хочу отфильтровать только те строки, которые имеют значение косинуса> 0,5 (скажем, х) и <1 с любым другим вопросом. </p>

Я попробовал приведенный ниже набор кодов для фильтрации данных

filter_boolean = final_df[(final_df.iloc[:,2:] > 0.5) &(final_df.iloc[:,2:] < 1)]

Ожидаемый и фактический результат соответствуют изображениям ниже Input DataFrame Actual Output

1 Ответ

0 голосов
/ 20 октября 2019

Панды dropna функция использует аргумент axis и how для решения этого варианта использования.

Чтобы использовать dropna для столбцов, используйте axis=1 (скореечем по умолчанию, axis=0, который работает со строками).

Чтобы пропустить, где 'any' равны NaN, используйте ключевое слово how и специальное 'any'.

Это должнорешить вашу проблему.

Вы можете сделать это также с логическими фильтрами, но dropna может быть более понятным для чтения другим и вам позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...