python - 范围内缺少值,因为没有人选择选项 5,因此它在索引 5 处破坏了我的 for 循环
问题描述
如何让 python 解释间隙并用 5 索引和 0 值填充它?
我正在创建一个函数来自动计算方差分析测试的调查响应,同时制作条形图。
我遇到的问题是,所有 65 岁以上的受访者都没有标记选项 5,因此它是空白的。这打破了我正在使用的 for 循环,因为它通过 range(7)。
我如何事先编写代码或在没有人选择 5 的行中编写代码,然后它可以自动包含它并分配 0 值。
a1y=[]
b2y=[]
c3y=[]
d4y=[]
e5y=[]
for item in range(7):
ar = grp1['Q22'].value_counts()
br = grp2['Q22'].value_counts()
cr = grp3['Q22'].value_counts()
dr = grp4['Q22'].value_counts()
er = grp5['Q22'].value_counts()
a1y.append(ar[item+1])
b2y.append(br[item+1])
c3y.append(cr[item+1])
d4y.append(dr[item+1])
e5y.append(er[item+1])
grp5['Q22'].value_counts()
7.0 16
4.0 14
6.0 11
2.0 8
3.0 2
-1.0 2
1.0 1
Name: Q22, dtype: int64
解决方案
您可以在任何选项上包含一个简单的 try 和 except 语句,因此如果出现错误,您可以处理它。为此,只需在您要处理的代码上方添加一个 try 语句和一个 except 语句,其中包含错误时应该发生的情况。
像这样:
try:
# CODE THAT MIGHT ERROR
er = grp5['Q22'].value_counts()
except:
# CODE THAT SHOULD BE EXECUTED IF THE ABOVE CODE ERRORS
er = 0
您可以使其更加具体,以便仅在发生特定错误时才执行 except 语句之后的代码。这是首选,因为如果您的程序由于另一个/意外原因在该行崩溃,您可以知道它的中断。
通过在 except 语句后添加错误名称来执行此操作:
except ERRORNAME: