首页 > 解决方案 > 尝试除了一种以上的情况

问题描述

我有一组包含数据的列。我需要 3 个最大组件的总和。问题是在某些列中我只有 2 或 1 个数据。所以我需要使用 try 和 except 来保持我的代码活着。同样在有 2 个数据的列中,我需要它们的总和,而对于 1 个数据,我需要它。我应该如何修改这段代码?提前致谢。

for i in df.index.unique():
    dff=df.loc[i]
    colum=dff['CENSUS2010POP']
    try:
        ss=sum(colum.nlargest(3))
    except:
        ss=sum(colum.nlargest(2))
    except:
        ss=sum(colum.nlargest(1))

标签: pythondataframeconditional-statementstry-exceptexcept

解决方案


您可以只限制列的大小,以确保您不会尝试访问太多元素

ss = sum(colum.nlargest(min(3, colum.size)))

推荐阅读