我还有另一个关于使用熊猫处理数据的问题。我正在尝试根据特定条件提交栏,但似乎无法获取正确的代码。
我需要根据“收入”(介于$ 1000000到$ 2000000之间且“债务比率”大于20%)来过滤数据
我尝试了以下代码,但是语法始终错误,或者只是布尔True或False输出。
loans_df = loansdf[loans_df('Income')== range(1000000:2000000) & loans_df('Debt Ratio') > .20]
所以我的预期结果是基于这些过滤器的df视觉效果,我不断收到错误或True或False输出!
答案 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