【问题标题】:How to write Multiple If-Else with Return Integer value如何使用返回整数值编写多个 If-Else
【发布时间】:2019-04-24 19:38:43
【问题描述】:
def score():
    edu = df.dummy
    if edu == 1:
        score= 10
    elif edu == 2:
        score= 30
    elif edu == 3:
        score= 80
    elif edu == 4:
        score= 100
    elif edu == 5:
        score= 125
    elif edu == 6:
        score= 150
    elif edu == 7:
        score= 200
    else: return score

发生错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。 如何在多个 if else 条件下返回整数值

【问题讨论】:

  • 什么是edudf 是什么?
  • edu里面有什么?
  • 嗨 Mureinik,df 是一个数据框,其中 dummy 作为整数类型的列,我将该值存储在 edu 中(如 1、2、3、4、5、6、7、8)
  • 您将整个 pandas.Series 与单个 int 值进行比较,这就是您遇到错误的原因。
  • 你想返回分数对吗?

标签: python-3.x


【解决方案1】:

首先,如果 edu 大于 7,则 score 不会分配给任何值。所以你不能返回分数。

而且,你可以试试df = pd.get_dummies(df, columns=['type'])

【讨论】:

  • edu 由 0 到 8 的 9 个值组成
  • 问题是关于分数的。不是教育。如果 edu 为 0 或 8,则不为“score”分配任何值,而是尝试返回 score。
【解决方案2】:

你只需要清除else语句就可以了

def scores():
    score=0
    edu = df.dummy

    if edu == 1:
        score= 10
    elif edu == 2:
        score= 30
    elif edu == 3:
        score= 80
    elif edu == 4:
        score= 100
    elif edu == 5:
        score= 125
    elif edu == 6:
        score= 150
    elif edu == 7:
        score= 200
    return score

【讨论】:

  • 你提供的代码工作正常,但它只需要 edu == 7
  • 哦!我不小心把edu=7这行放在了函数中。等等,我来编辑。
  • @KranthiKumarReddy 立即尝试
【解决方案3】:
def score(edu):
    if edu == 1:
        score= 10
    elif edu == 2:
        score= 30
    elif edu == 3:
        score= 80
    elif edu == 4:
        score= 100
    elif edu == 5:
        score= 125
    elif edu == 6:
        score= 150
    elif edu == 7:
        score= 200
    else:
        score=0
return score

现在,当您调用函数时,将数据帧传递为 分数(df.dummy)。

【讨论】:

    【解决方案4】:
    def edu_score():
        edu = df.dummy
        edu_score=[]
        for i in edu:
            if(i == 1):
                score = 10
            elif(i == 2):
                score = 30
            elif(i == 3):
                score = 80
            elif(i == 4):
                score = 100
            elif(i == 5):
                score = 125
            elif(i == 6):
                score = 150
            elif(i == 7):
                score = 200
            edu_score.append(score)
        return edu_score
    

    这是你的答案

    【讨论】:

      猜你喜欢
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2021-07-30
      • 1970-01-01
      相关资源
      最近更新 更多