python - 函数没有返回正确的值(Python)
问题描述
我在下面有一个函数,它应该根据数字范围返回标准化输出:
`def incident(count):
if count['incident_ct']<= 4:
val = 1
elif count['incident_ct']>4 & count['incident_ct']<= 13: # 25 to 50%
val = 2
elif count['incident_ct'] >13 & count['incident_ct']<=31: # 50 to 75%
val = 4
elif count['incident_ct'] >31 & count['incident_ct']<=100: # 75 to 95%
val = 8
else:
val = 16
return val`
然后应用于数据中的新行:
`intersections['v_counts'] = intersections.apply(incident, axis = 1)`
但是,输出没有给出我在范围内指定的内容(v_count 中只有 1 或 2)查看我的代码时,incident_ct = 34应该是8,而incident_ct = 172应该是 16
解决方案
让我们尝试使用pd.cut
pd.cut(intersections['incident_ct'],bins=[4,13,31,100,..],labels=[1,2,4,8,16])
修复你的代码
def incident(count):
... if count['incident_ct']<= 4:
... val = 1
... elif count['incident_ct']>4 and count['incident_ct']<= 13: # 25 to 50%
... val = 2
... elif count['incident_ct'] >13 and count['incident_ct']<=31: # 50 to 75%
... val = 4
... elif count['incident_ct'] >31 and count['incident_ct']<=100: # 75 to 95%
... val = 8
... else:
... val = 16
... return val
推荐阅读
- javascript - Firefox 在 keydown 上没有检测到 Alt 键
- c - 以太网缓冲区可以填满并且不允许另一个进程接收()以太网数据包吗?
- javascript - Javascript - 无论深度如何,都更新嵌套字典中的值
- postgresql - 尝试通过 Flutter Android 应用程序中的 URI 从 postgress 数据库获取数据时,不支持的方案“postgres”
- javascript - 推送到 GitHub 的不需要的子模块
- networking - 当服务停止侦听该 TCP 端口时,已建立的连接会发生什么情况?
- python - 我不明白机器学习python中的空数据集是什么意思
- java - 为什么我对字节的 Java 位检查不稳定?
- netlogo - 如何在 NetLogo 6.2 中选择补丁变量的第二高值?
- function - 有谁知道如何在 Visual Studio Code 中自动获取参数名称?