根据某些条件过滤出列

时间:2019-05-01 21:51:22

标签: python-3.x pandas filtering

我还有另一个关于使用熊猫处理数据的问题。我正在尝试根据特定条件提交栏,但似乎无法获取正确的代码。

我需要根据“收入”(介于$ 1000000到$ 2000000之间且“债务比率”大于20%)来过滤数据

我尝试了以下代码,但是语法始终错误,或者只是布尔True或False输出。

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

所以我的预期结果是基于这些过滤器的df视觉效果,我不断收到错误或True或False输出!

1 个答案:

答案 0 :(得分:0)

检查构造布尔掩码的方式以及运算符的优先级。值得回顾一下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