我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用python 进行区间取值的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用python 进行区间取值的方法

需求背景:

进行分值计算。如下图,如果只是一两个还好说,写写判断,但是如果有几十个,几百个,会不会惨不忍睹。而且,下面的还是三种情况。

例如:

解决:


# 根据值、比较list, 值list,返回区间值, other_value 即不在的情况
    def get_value_by_between(self, compare_value, compare_list, value_list, other_value, type="compare", left=False,
                             right=True):
        try:
            if compare_value is None or compare_value == '':
                return other_value
 
            if len(compare_list) != len(value_list):
                raise Exception("区间对比两个list长度不一致")
 
            # # 如果比较的值和其它情况值一致,说明是其它情况
            # if compare_value == other_value:
            #     return other_value
 
            # 左边开区间
            if compare_list[0] == -9999999 and compare_list[1] >= compare_value:
                return value_list[0]
 
            # 右边开区间
            if right is True and compare_value > compare_list[len(compare_list) - 1]:
                return value_list[len(compare_list) - 1]
            # 左边开区间
            # if left is True and compare_value <= compare_list[0]:
            #     return compare_value[0]
 
            for ind, this_val in enumerate(compare_list):
                # 如果是最后一个,则返回最后一个值
                if compare_value > compare_list[len(compare_list) - 1]:
                    return value_list[len(compare_list) - 1]
                # 返回默认的
                elif (ind + 1) == len(compare_list):
                    return other_value
 
                # 下一个,如果大于compare_list长度减1 ,就返回最后一个
                next_val = compare_list[ind if ind >= len(compare_list) else ind + 1]
                # 第一个的话就是 大于等于,小于下一个
                if ind == 0 and compare_value >= this_val and compare_value <= next_val:
                    return value_list[ind]
                # 大于左边,小于等于右边
                elif this_val < compare_value and compare_value <= next_val:
                    return value_list[ind]
        except:
            log.error("根据区间计算分数异常", traceback.format_exc())
        return other_value

# 数字型
    def get_val_by_list(self, compare_value, compare_list, val_list, other_value):
        try:
            if compare_value is None:
                return other_value
 
            for ind, li in enumerate(compare_list):
                if len(li) == 1 and compare_value == li[0]:
                    return val_list[ind]
                # 最后一个
                elif len(li) == 1 and (ind + 1) == len(compare_list) and compare_value >= li[0]:
                    return val_list[ind]
                elif len(li) == 2 and compare_value >= li[0] and compare_value <= li[1]:
                    return val_list[ind]
        except:
            log.error(" get_val_by_list 异常", traceback.format_exc())
        return other_value

TEST


# creditTime 即值
self.get_val_by_list(creditTime, [[0],[1],[2],[3]], [20, 10, 0, -100],
                                                                   other_value=0)

self.get_value_by_between(taxCreditRating, [0, 60, 70, 80, 90],[-200, 0, 10, 20, 30], other_value=0)

如果是图2,即第三种情况,则需要多加一个0,和对应的值。


self.get_value_by_between(taxAmt12m, [0,0, 1000, 15000, 50000, 200000],[-50, -50, 0, 0, 5, 10], -0)

如果是负无穷大,则使用-999999

到此这篇关于使用python 进行区间取值的文章就介绍到这了,更多相关python区间取值内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用python 进行区间取值的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用python进行区间取值

这篇文章主要讲解了“怎么使用python进行区间取值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用python进行区间取值”吧!需求背景:进行分值计算。如下图,如果只是一两个还好说,
2023-06-20

Python怎么进行区间取值

这篇文章主要介绍“Python怎么进行区间取值”,在日常操作中,相信很多人在Python怎么进行区间取值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么进行区间取值”的疑惑有所帮助!接下来,请跟
2023-06-20

利用Python抓取行政区划码的方法

前言 国家统计局网站上有相对比较齐的行政区划码,对于一些网站来说这是非常基础的数据,所以写了个Python程序将这部分数据抓取下来。 注意:抓取下来以后还要进行简单的人工的整理 示例代码:# -*- coding:utf-8 -*- '''
2022-06-04

Python进行数据提取的方法总结

准备工作首先是准备工作,导入需要使用的库,读取并创建数据表取名为loandata。import numpy as np import pandas as pd loandata=pd.DataFrame(pd.read_excel('loa
2022-06-04

MySQL按时间进行表分区的方法代码

目录创建按月份分区的表开启数据库事件临时配置(服务重启会失效)修改my.cnf文件(推荐)定时事件自动建分区查询表分区信息总结 创建按月份分区的表create table if not exists table_name(id
MySQL按时间进行表分区的方法代码
2024-09-29

如何运用bootice对磁盘进行分区?win7系统中使用bootice进行分区的方法

Win7系统中如何使用bootice进行磁盘http://www.cppcns.com分区?日常我们给电脑安装上win7系统后为了方便对文件的管理,需编程客栈要对磁盘进行分区,此时分区的方法有很多种:比如使用bootice对磁盘进行分区,此
2023-05-23

Python中使用sklearn进行特征降维的方法

在Python中,可以使用sklearn库中的特征降维方法对数据进行处理。主要包括基于PCA算法的降维、基于LDA算法的降维、以及利用特征选择方法进行降维。这些方法可以提高模型的训练效率和预测准确率,特别是在高维数据集中具有重要的作用
2023-05-17

Python获取代码运行时间的几种方法

Python获取代码运行时间的几种方法1、方法一:#python 的标准库手册推荐在任何情况下尽量使用time.clock().#只计算了程序运行CPU的时间,返回值是浮点数import timestart =time.clock()#中间
2023-01-31

Python使用Pycrypto库进行RSA加密的方法详解

密码与通信 密码技术是一门历史悠久的技术。信息传播离不开加密与解密。密码技术的用途主要源于两个方面,加密/解密和签名/验签 在信息传播中,通常有发送者,接受者和窃听者三个角色。假设发送者Master想要写信给接受者Ghost,可是又不想信的
2022-06-04

Win8.1自带分区功能的使用方法 win8.1使用自带分区功能如何进行分区

大家是否知道Win8.1自带分区功能,那么Win8.1自带分区功能如何使用?安装win8.1正式版系统后需要进行分区,可能很多用户第一反应就是下载分区功能。其实win8.1系统自带有分区功能,完全可以使用自带分区功能重新进行分区。相信有很多
2022-06-04

PHP怎么使用GET方法进行页面跳转及传值

这篇文章主要介绍“PHP怎么使用GET方法进行页面跳转及传值”,在日常操作中,相信很多人在PHP怎么使用GET方法进行页面跳转及传值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP怎么使用GET方法进行页
2023-07-05

python使用threading获取线程函数返回值的实现方法

threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组,线程也不能被停止、暂停、恢复、中断。 threading模块提供的类: Thread, Lock, Rlock
2022-06-04

php使用Aes进行加密的方法

这篇文章将为大家详细讲解有关php使用Aes进行加密的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php可以查看用户的标识判断用户是否登录,但是此标识可以修改,修改之后就可以获取到修改的用户所有信息
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录