pandas按条件提取DataFrame子集未通过测试如何解决?
问题原因及修正方案
错误点梳理
- 筛选逻辑错误:你使用了
Minimum Temperature(最低气温)作为判断条件,但是需求中「气温至少达到70度」指的是当日气温最高值达到70度即可,应该用Maximum Temperature列做筛选。 - 统计天数的返回类型错误:
at_least_70.count()返回的是统计每列非空值的Series对象,测试用例一般期望得到整数类型的天数,直接用len()统计行数更符合要求。
修正后代码
# 筛选最高温≥70度的行,保留Date列(如果需要完整行数据可去掉后面的['Date']参数) at_least_70 = dfc.loc[dfc['Maximum Temperature'] >= 70, ['Date']] # 直接统计符合条件的行数得到整数结果 num_at_least_70 = len(at_least_70)
补充说明
如果测试用例要求返回的at_least_70是包含所有列的完整DataFrame,只需要把筛选语句修改为:
at_least_70 = dfc.loc[dfc['Maximum Temperature'] >= 70]
内容的提问来源于stack exchange,提问作者learningcode
相关产品推荐
相关产品推荐

