【问题标题】:try except with more than one situation尝试除了一种以上的情况
【发布时间】:2020-08-26 13:58:33
【问题描述】:

我有一组包含数据的列。我需要 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))

【问题讨论】:

  • 您可能希望提供一个引发错误的真实数据样本,以及错误的整个追溯。

标签: python dataframe conditional-statements try-except except


【解决方案1】:

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

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

【讨论】:

  • 谢谢。我学到了一些新东西。这个问题也没有解决。我终于发现对于具有 1 个组件的列,nlargest 方法会产生问题。我解决了这个问题。再次感谢。
【解决方案2】:

另一个建议的解决方案更好,但如果您对您提出的具体问题感到好奇,您可以使用多个 try-excepts:

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

【讨论】:

    猜你喜欢
    • 2022-07-02
    • 1970-01-01
    • 2012-04-23
    • 2013-07-23
    • 2020-05-18
    • 2021-07-19
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    相关资源
    最近更新 更多