报错‘series对象不可调用’:筛选新冠确诊病例DataFrame遇问题
报错原因与解决方法
错误原因
你的代码里,两个关于Case classification的布尔条件之间缺少逻辑运算符,Python会把前一个条件返回的布尔Series当成函数去调用后一个条件的括号内容,因此触发了'series' object is not callable错误。
修正后的代码
要筛选出“本地确诊病例或与本地病例流行病学相关的确诊病例”,需要用|(逻辑或)连接两个分类条件,同时注意括号优先级(&优先级高于|,需把两个或条件括起来,避免逻辑错误):
df_confirmed_local = df_covid.loc[ (df_covid["Confirmed/probable"] == "Confirmed") & ( (df_covid["Case classification"] == 'Local case') | (df_covid["Case classification"] == "Epidemiologically linked with local case") ) ] df_confirmed_local
逻辑说明
- 先筛选
Confirmed/probable为Confirmed的确诊病例 - 再同时匹配
Case classification是Local case或Epidemiologically linked with local case的病例 - 用括号包裹两个或条件,确保先计算“或”逻辑,再与前面的“与”逻辑结合,避免优先级导致的筛选偏差
内容的提问来源于stack exchange,提问作者Katie C.
相关产品推荐
相关产品推荐

