首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >经典的"ValueError:系列的真值不明确“

经典的"ValueError:系列的真值不明确“
EN

Stack Overflow用户
提问于 2021-01-08 08:53:35
回答 1查看 32关注 0票数 1

这是我的情况的一个淡化版本。我在一个不能修改的代码环境中工作。在后端,有一个类似于add_sigma的函数。我需要分配函数来跨"value“列包含特定字符串的行执行。这个函数本身迫使我输入一个布尔表达式。有什么办法可以解决这个问题吗?

代码语言:javascript
运行
复制
import pandas as pd
import numpy as np


def add_sigma(percent):

    if percent >= 99.9997:
        return 6
    elif percent <= 99.9996 and percent >= 99.98:
        return 5
    elif percent <= 99.979 and percent >= 99.4:
        return 4
    elif percent <= 99.39 and percent >= 93.3:
        return 3
    elif percent <= 93.29 and percent >= 69.1:
        return 2
    elif percent <= 69.09 and percent >= 30.9:
        return 1
    elif percent <= 30.89 and percent >= 0:
        return 0


df = pd.DataFrame({'value': ['0-3 bucket', '4-7 bucket', '8+ bucket', '0-3 bucket', '0-3 bucket', '8+ bucket'],
                   'percentage': [27.68, 82.94, 32.26, 91.97, 99.82, 67.44]})

df['sigma'] = ''
df['sigma'] = np.where(df['value'] == '0-3 bucket', add_sigma(df['percentage']), df['sigma'])

预期输出将为

代码语言:javascript
运行
复制
        value  percentage sigma
0  0-3 bucket       27.68     0
1  4-7 bucket       82.94      
2   8+ bucket       32.26      
3  0-3 bucket       91.97     2
4  0-3 bucket       99.82     4
5   8+ bucket       67.44      
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-08 09:28:35

正如cs95所说,您可以使用条件并调用add_sigma函数。一种方法是将条件包含在apply中,如下所示:

代码语言:javascript
运行
复制
df['sigma'] = df.apply(lambda x: add_sigma(x.percentage) if x['value'] == '0-3 bucket' else '',axis=1)

结果将是:

代码语言:javascript
运行
复制
        value  percentage sigma
0  0-3 bucket       27.68     0
1  4-7 bucket       82.94      
2   8+ bucket       32.26      
3  0-3 bucket       91.97     2
4  0-3 bucket       99.82     4
5   8+ bucket       67.44      

使用.loc,您可以执行以下操作:

代码语言:javascript
运行
复制
df.loc[df['value'] == '0-3 bucket' , 'sigma'] = df['percentage'].map(add_sigma)
df['sigma'] = df['sigma'].fillna('')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65622019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档