首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对比Excel,用Pandas轻松搞定IF函数操作

在 Excel 中IF 函数是最常用的函数之一,它可以对值和期待值进行逻辑比较。因此IF 语句可能有两个结果:第一个结果是比较结果为 True,第二个结果是比较结果为 False。...df.where 该函数可以将满足条件的函数筛选出来,将不满足条件的值赋值为另外一个值,默认情况下为NaN。...从函数介绍来看,它能做到的只有一种条件判断,然后只能对不满足要求的值进行赋值操作,比如: # 显示≥60的值,低于60分显示为 不及格 df[['语文','数学','英语']].where(df[['语文...和Excel中IF函数更接近的其实就是np.where这个函数,如果条件满足则赋值x,否则赋值y。...延伸 tips one 既然有 df.where 筛选满足条件的值显示,不满足的进行赋值。那么,是不是有筛选满足条件的值进行赋值,不满足的值显示呢? 答案是肯定的!

1.9K20

高效的10个Pandas函数,你都用过吗?

Insert Insert用于在DataFrame的指定位置中插入新的数据列。默认情况下新列是添加到末尾的,但可以更改位置参数,将新列添加到任何位置。...Ture表示允许新的列名与已存在的列名重复 接着用前面的df: 在第三列的位置插入新列: #新列的值 new_col = np.random.randn(10) #在第三列位置插入新列,从0开始计算...当然仅用cumsum函数没办法对groups (A, B, C)进行区分,所以需要结合分组函数groupby分别对(A, B, C)进行值的累加。...Where Where用来根据条件替换行或列中的值。如果满足条件,保持原来的值,不满足条件则替换为其他值。默认替换为NaN,也可以指定特殊值。..., raise_on_error=None) 参数作用: cond:布尔条件,如果 cond 为真,保持原来的值,否则替换为other other:替换的特殊值 inplace:inplace为真则在原数据上操作

4.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript实用手册

    表示所有非数字的数据,NaN 不会主动使用,只在无法转为数字时,自动返回,NaN 参与任何算数计算,结果依然为 NaN,NaN 做比较时不大于,不小于,不等于任何值,NaN 不等于一切 ②....,都是在考声明提前,对于这类问题可先将程序改为提前之后的样子,再判断输出 声明提前的弊端解决办法: (1)....如果代码简单,三目/三元/条件运算 条件?满足条件才执行的操作(值 1):不满足条件才执行的操作(值 2) ? ②....循环变量: 循环条件中用作判断和比较的变量,循环变量的值,每循环一次,都要向着不满足循环条件的趋势不断变化,如果循环变量值不变,或循环条件始终为 true,循环无法退出形成死循环 (3)....会将变量的作用域,限制在一个块内部,增加了块级作用域 (2). let 之前不允许再出现未声明的同名变量,避免了声明提前 84.

    3.4K10

    TensorFlow中的Nan值的陷阱

    01 Loss计算中出现Nan值 在搜索以后,找到StackOverflow上找到大致的一个解决办法(原文地址:这里),大致的解决办法就是,在出现Nan值的loss中一般是使用的TensorFlow的log...函数,然后计算得到的Nan,一般是输入的值中出现了负数值或者0值,在TensorFlow的官网上的教程中,使用其调试器调试Nan值的出现,也是查到了计算log的传参为0;而解决的办法也很简单,假设传参给...log的参数为y,那么在调用log前,进行一次数值剪切,修改调用如下: loss = tf.log(tf.clip_by_value(y,1e-8,1.0)) 这样,y的最小值为0的情况就被替换成了一个极小值...tf.clip_by_value这个函数,是将第一个参数,限制在第二、三个参数指定的范围之内,使用这个函数的原意是要避免0值,并没有限制最大值,因而我将限制的调用修改如下: loss = tf.log(...不过需要注意的是,在TensorFlow中,tf.nn.sigmoid函数,在输出的参数非常大,或者非常小的情况下,会给出边界值1或者0的输出,这就意味着,改造神经网络的过程,并不只是最后一层输出层的激活函数

    3.2K50

    Python数据分析:numpy

    a[[1,3],:] # 取离散多行,可简写为a[[1,3]] a[:,[2,4]] # 取离散多行 a[a<2] # bool索引 np.where(a条件...1替换为0,不满足替换为4 a.clip(2,3) # 裁剪,大于3替换为3,小于2替换为2 numpy中的nan和inf nan(NAN,Nan):not a number,表示不是一个数字,type...=a) # 判断a中nan个数 np.isnan(a) # 判断是否为nan,返回bool类型 a[np.isnan(a)] = 0 # nan 替换为0 numpy中常用统计函数 求和:t.sum...极值:np.ptp(t,axis=None) 即最大值和最小值之差 标准差:t.std(axis=None) 默认返回多维数组的全部的统计结果,如果指定axis则返回一个当前轴上的结果 数组的拼接 np.vstack...其他实用方法 1.获取最大值最小值的位置 np.argmax(t,axis=0) np.argmin(t,axis=1) 2.创建一个全0的数组: np.zeros((3,4)) 3.创建一个全1的数组

    1.1K40

    7步搞定数据清洗-Python数据清洗指南

    字段分别代表什么意义 字段之间的关系是什么?可以用做什么分析?或者说能否满足了对分析的要求? 有没有缺失值;如果有的话,缺失值多不多? 现有数据里面有没有脏数据?...日期调整前(为求简便这里用已经剔除分秒,剔除的办法后面在格式一致化的空格分割再详细说) #数据类型转换:字符串转换为日期 #errors='coerce' 如果原始数据不符合日期的格式,转换后的值为空值...python缺失值有3种: 1)Python内置的None值 2)在pandas中,将缺失值表示为NA,表示不可用not available。...但是,我们应该用什么值替换呢?这个时候可能要结合你对这个数据集的理解,看填充什么数据才是比较合适,以下是一下常用的方法。...”这样的默认值进行替换。

    4.5K20

    python学习笔记第三天:python之numpy篇!

    Python的外部扩展成千上万,在使用中很可能会import好几个外部扩展模块,如果某个模块包含的属性和方法与另一个模块同名,就必须使用import module来避免名字的冲突。...即所谓的名字空间(namespace)混淆了,所以这前缀最好还是带上。 那有没有简单的办法呢?...想要真正的复制一份a给b,可以使用copy: 若对a重新赋值,即将a指到其他地址上,b仍在原来的地址上: 利用':'可以访问到某一维的全部数据,例如取矩阵中的指定列: 稍微复杂一些,我们尝试取出满足某些条件的元素...七、缺失值 缺失值在分析中也是信息的一种,NumPy提供nan作为缺失值的记录,通过isnan判定。...nan_to_num可用来将nan替换成0,在后面会介绍到的更高级的模块pandas时,我们将看到pandas提供能指定nan替换值的函数。

    2.7K50

    python数据分析笔记——数据加载与整理

    9、10、11行三种方式均可以导入文本格式的数据。 特殊说明:第9行使用的条件是运行文件.py需要与目标文件CSV在一个文件夹中的时候可以只写文件名。...5、文本中缺失值处理,缺失数据要么是没有(空字符串),要么是用某个标记值表示的,默认情况下,pandas会用一组经常出现的标记值进行识别,如NA、NULL等。查找出结果以NAN显示。...(2)将‘长格式’旋转为‘宽格式’ 2、转换数据 (1)数据替换,将某一值或多个值用新的值进行代替。(比较常用的是缺失值或异常值处理,缺失值一般都用NULL、NAN标记,可以用新的值代替缺失标记值)。...一对一替换:用np.nan替换-999 多对一替换:用np.nan替换-999和-1000. 多对多替换:用np.nan代替-999,0代替-1000. 也可以使用字典的形式来进行替换。...(2)离散化或面元划分,即根据某一条件将数据进行分组。 利用pd.cut()方式对一组年龄进行分组。 默认情况下,cut对分组条件的左边是开着的状态,右边是闭合状态。

    6.1K80

    ‘underscore系列之比较两个元素是否“相同“‘

    那么在什么程度上才算是相同, 举个例子: 1与1是相等的(当然他们前提是类型是一样的)那么1和 new Number(1)也应该相等。...第一个条件满足, 我们看第二个 1 / a(-0) === -Infinity而1 / b(0) === Infinity;所以第二个条件也不满足, 那么直接返回return false....关于这里我想了想也对, 如果a === b 直接在上面的判断条件哪里直接就返回了。 所以把return a === b 替换成 retun false, 会更加清晰吧。...与number2的值都是Number{NaN},而且又都是[object Number]。...所以这里专门针对NaN的情况做了判断, 看case里的第一个判断条件: 如果+a不等于+a那么a就是NaN, 因为NaN === NaN为false。同理b也一样如果b为NaN那么返回为true。

    53820

    tensorflow出现LossTensor is inf or nan : Tensor had Inf values

    值,另一种是在更新网络权重等等数据的时候出现了Nan值,本文接下来,首先解决计算loss中得到Nan值的问题,随后介绍更新网络时,出现Nan值的情况。...Loss计算中出现Nan值 在搜索以后,找到StackOverflow上找到大致的一个解决办法(https://stackoverflow.com/questions/33712178/tensorflow-nan-bug...1e-8,1.0))这样,y的最小值为0的情况就被替换成了一个极小值,1e-8,这样就不会出现Nan值了,StackOverflow上也给出了相同的解决方案。...tf.clip_by_value这个函数,是将第一个参数,限制在第二、三个参数指定的范围之内,使用这个函数的原意是要避免0值,并没有限制最大值,因而我将限制的调用修改如下:loss = tf.log(tf.clip_by_value...不过需要注意的是,在TensorFlow中,tf.nn.sigmoid函数,在输出的参数非常大,或者非常小的情况下,会给出边界值1或者0的输出,这就意味着,改造神经网络的过程,并不只是最后一层输出层的激活函数

    1.7K20

    MySQL的优化利器⭐️Multi Range Read与Covering Index是如何优化回表的?

    :有没有什么办法可以尽量避免回表或让回表的开销变小呢?...,当查询数据量大,使用二级索引都要回表的话,性能还不如全表扫描(扫描聚簇索引),这通常也是索引失效的一大场景(后续文章再来聊聊这块) Multi Range Read 多范围读取 那有没有什么办法降低成本呢...实际上上篇文章说过的ICP就可以减低回表次数 Covering Index 覆盖索引 回表无论如何优化都会存在一定的开销,那有没有可能避免回表呢? 要避免回表问题,那就要知道为什么会回表?...当使用的二级索引不满足查询需要的列时,会进行回表查询聚簇索引获取完整记录 回表不仅需要再查一次聚簇索引,而且在二级索引中主键值可能是乱序的,因此查询聚簇索引会出现随机IO 查询随机IO时可能每条记录都在不同的页中...,这会导致每查询一条记录就需要将磁盘中的页加载到缓冲池,随机IO开销很大 优化回表有两种思路:一种是降低回表的开销,另一种是避免回表 Index Condition Push 索引条件下推(上篇文章说的

    9421

    原生js的笔记

    是未定义的空值 NaN!...非 &&与(且) 同真为真 其余都是假 所有的条件都要满足 有一个不满足就是false ||或 有真为真 其余都是假 满足其中任意一个条件即可 都不满足就是false...(判断条件){ 语句 }else{ 语句除了上面所有判断条件都不满足的结果 } if执行流程 只要满足第一个判断条件就执行对应语句,下面无论是否满足都不执行。...不满足第一个条件,就在判断下一个条件没如果下一个满足就停止判 输出对应语句,如果不满足条件就继续判断下一个条件。 所以把最大的范围写在上面,再往下写小范围。或者分段写判断条件。...+(④循环方式)例如( document.write(a++) ) } 语法三 while( true ){ } 当while后面的条件是true,就是一个死循环,为了避免问题。

    9610

    MySQL的优化利器⭐️索引条件下推,千万数据下性能提升273%🚀

    =18的记录找到满足条件的记录后,根据索引上现有列判断其他查询条件,不满足则跳过该记录满足则回表查询聚簇索引其他列的值获取需要查询的值后,返回server层进行where过滤2-5步骤为循环执行,直到找到第一条不满足条件的记录测试开启函数创建...276%经过前面的分析,索引条件下推是通过减少回表的次数从而优化性能,因此这里提升的性能实际上节省不必要的回表开销在查询大数据量情况下,回表不仅要多查聚簇索引,还可能导致随机IO(增加与磁盘的交互)虽然可以通过索引条件下推优化减少回表次数...,但还是会有符合条件的记录需要回表那有没有什么办法可以尽量避免回表或让回表的开销变小呢?...,并以索引列、主键进行排序,有多个索引列时,前一个索引列相等时当前索引列才有序;聚簇索引存储整条记录的值,并以主键有序当使用二级索引并且二级索引上的列不满足查询条件时,需要回表查询聚簇索引获取其他列的值...;回表查询聚簇索引时主键值无序可能导致随机IO索引条件下推在多查询条件的情况下,在存储引擎层多判断一次where其他查询条件,利用二级索引上的其他列判断记录是否满足其他查询条件,如果不满足则不用回表,减少回表次数查询数据量大的情况下

    43931

    前端学习(30)~js学习(七):流程控制语句-选择结构(if,switch)

    ,做的事情 } 格式2:(多分支的if语句) if (条件表达式1) { // 条件1为真时,做的事情 } else if (条件表达式2) { // 条件1不满足,条件2满足时,做的事情...} else if (条件表达式3) { // 条件1、2不满足,条件3满足时,做的事情 } else { // 条件1、2、3都不满足时,做的事情 } 以上所有的语句体中,只执行其中一个...switch语句的执行流程 执行流程如下: (1)首先,计算出表达式的值,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。...我们尽量不要写太多的 if 语句,避免代码嵌套过深。...但你有没有发现,重复代码太多了? 实战开发中,凡是有重复的地方,我们都必须要想办法简化。写代码就是在不断重构的过程。

    1.1K10

    4篇笔记搞定JavaScript----第二篇

    条件控制语句 If语句: 格式:if(条件){//语句块} 如果条件满足true,才执行大括号里面的代码,如果条件不满足,则不执行大括号里面的代码。...,如果不满足,就执行else语句。...If-else-if语句: 格式:if(条件1){//语句}else if(条件2){//语句} 如果条件满足,就执行语句,如果不满足,就不会执行。...注意:有可能不会执行 混合形式: 格式:if(条件){//语句}else if(条件){//语句}else{//语句} 如果条件满足,就执行语句,如果不满足,就直接else语句。...2)让函数名有意义 6、作用域: 1)全局变量:所有地方都能用的变量在函数外部申明的变量 2)局部变量:在函数内部申明的变量就是局部变量 7、函数注意: 1)函数写好之后不会立即执行,只有在调用的情况下才会执行

    41110

    解决ValueError: cannot convert float NaN to integer

    因为在Python中,NaN是不能转换为整数的。解决方法解决这个问题的方法通常有两种:1. 检查NaN值首先,我们需要检查数据中是否存在NaN值。...接着,使用​​fillna​​函数将NaN值替换为0,再使用​​astype​​方法将浮点数转换为整数类型。最后,打印输出了处理后的数据集。...这个示例展示了如何在实际应用场景中处理NaN值,并将其转换为整数类型,避免了​​ValueError: cannot convert float NaN to integer​​错误。...处理NaN值是数据清洗与准备的重要环节之一,常见的处理方法包括填充(用合适的值替换NaN)、删除(从数据集中删除包含NaN的行或列)等。整数整数是数学中的一种基本数据类型,用于表示不带小数部分的数字。...对于某些操作,比如将一个浮点数转换为整数类型,需要注意浮点数的有效性以及特殊情况,如存在NaN值的情况。在这种情况下,通常需要进行额外的处理,以避免出现错误或不符合预期的结果。

    2.3K00
    领券