首页 > 解决方案 > 异常处理 - 列表索引超出范围

问题描述

我有一个列表,其中列表的长度是动态的。如果我们看下面的例子,列表的长度是 2,从 0 开始。我在 Excel 表中填写这个值,当列表的长度为 6 时它工作正常,但有时列表的长度是2 或 3 和那个时间点,我得到预期的“列表索引超出范围”。如果列表超出范围,我需要填写 0 作为其余列表的值。我们应该怎么做?

counts = [2, 1] #list

df1.loc[0, 'Value'] = counts[0]
df1.loc[1, 'Value'] = counts[1]
df1.loc[2, 'Value'] = counts[2]
df1.loc[3, 'Value'] = counts[3]
df1.loc[4, 'Value'] = counts[4]
df1.loc[5, 'Value'] = counts[5]

错误:

df1.loc[2, 'Value'] = counts[2]
IndexError: list index out of range

预期成绩

df1.loc[0, 'Value'] = 2
df1.loc[1, 'Value'] = 1
df1.loc[2, 'Value'] = 0
df1.loc[3, 'Value'] = 0
df1.loc[4, 'Value'] = 0
df1.loc[5, 'Value'] = 0

标签: pythonpython-3.xpandasdataframe

解决方案


查找原始列表的长度并在列表中附加 0

append_len = 6 - len(count)
for i in range(append_len):
    count.append(0)


for i in range(6):
    df1.loc[i, 'Value'] = counts[i]

推荐阅读