Фильтрация столбцов по определенным критериям - PullRequest
1 голос
/ 02 мая 2019

У меня есть еще один вопрос по поводу манипулирования данными с помощью панд. Я пытаюсь заполнить столбец на основе определенных критериев, но не могу получить правильный код.

Мне нужно отфильтровать мои данные по «доходу», который находится в диапазоне от 1000000 до 2000000 долларов США, а «Коэффициент задолженности» составляет более 20%

Я пробовал следующий код, но постоянно получаю либо ошибку в моем синтаксисе, либо просто логический вывод True или False.

loans_df = loansdf[loans_df('Income')== range(1000000:2000000) & loans_df('Debt Ratio') > .20]

Итак, мои ожидаемые результаты должны быть визуальными, показывающими df на основе этих фильтров, и я продолжаю получать либо ошибки, либо выход True или False!

1 Ответ

0 голосов
/ 02 мая 2019

Проверьте способ построения логической маски и приоритет операторов.Стоит рассмотреть язык Python и узнать, как булевы маски создаются с помощью Pandas.Вот функциональное решение с маской в ​​одной строке, так что вы можете поэкспериментировать с операторами, приоритетами и другой логикой, если хотите.Также проверьте способ ссылки на столбцы в кадре данных.

import pandas as pd
import csv

from pandas.compat import StringIO

csvdata = StringIO("""
Income,Debt Ratio
5000000,.4
1000000,.4
1500000,.3
1500000,.1
""")

loans_df = pd.read_csv(csvdata, sep=",")
mask = (loans_df['Income'] > 1000000) & (loans_df['Income'] < 2000000) & (loans_df['Debt Ratio'] > .20)
print (loans_df[mask])

Производит

2  1500000         0.3

...