标签:Python与Excel协同,pandas 本文介绍如何使用Python pandas库实现Excel中的SUMIF函数和COUNTIF函数功能。 SUMIF可能是Excel中最常用的函数之一。...Pandas中的SUMIFS SUMIFS是另一个在Excel中经常使用的函数,允许在执行求和计算时使用多个条件。 这一次,将通过组合Borough和Location列来精确定位搜索。...注:位置类型列中的数据是为演示目的随机生成的。 使用布尔索引 看看有多少投诉是针对Manhattan区和位置类型“Store/Commercial”。...图6 与只传递1个条件Borough==‘Manhattan’的SUMIF示例类似,在SUMIFS中,传递多个条件(根据需要)。在这个示例中,只需要两个。...df.groupby(['Borough','LocationType'])['num_calls'].sum() 图7 Pandas中的COUNTIF,COUNTIFS和其它 现在,已经掌握了pandas
后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 Excel 中除了 Vlookup 函数,一系列条件统计函数(sumif、countif、maxif)...今天我们来看看在 pandas 中如何做到条件统计。...这需要我们在 Excel 中有很多方式完成,比如透视表或函数公式,下面简单列出函数公式的做法: - 简单使用 countifs 即可 > 这里不再单独使用 countif 了,管他是否只有一个条件,统一用...xxxifs 类函数即可 在 pandas ,不会有啥条件统计函数的,因为这就是先筛选,再统计: - 行2:得到 性别 列是女性的 bool 列 - 行3:df[cond] 就是女性的记录,简单通过...更多高级应用方法,请关注 pandas 专栏 [带你玩转Python数据处理—pandas] 总结 本文重点: - 构造 bool 列,是核心知识点 - Series.str.contains 用于文本规则条件匹配
后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 Excel 中除了 Vlookup 函数,一系列条件统计函数(sumif、countif、maxif)...今天我们来看看在 pandas 中如何做到条件统计。...这需要我们在 Excel 中有很多方式完成,比如透视表或函数公式,下面简单列出函数公式的做法: - 简单使用 countifs 即可 > 这里不再单独使用 countif 了,管他是否只有一个条件,统一用...xxxifs 类函数即可 在 pandas ,不会有啥条件统计函数的,因为这就是先筛选,再统计: - 行2:得到 性别 列是女性的 bool 列 - 行3:df[cond] 就是女性的记录,简单通过...,那么此需求即可迎刃而解: - 行2:由于 住址 列是字符串类列,使用 .str 可访问字符串类型列的各种方法 - contains 判断列中是否包含指定内容。
) # print(df) # 方法一:分别取日期与小时,按照日期和小时删除重复项 df['day'] = df['SampleTime'].dt.day # 提取日期列 df['hour'] =...df['SampleTime'].dt.hour # 提取小时列 df = df.drop_duplicates(subset=['day', 'hour']) # 删除重复项 # 把筛选结果保存为...,并按照新的日期时间删除重复项(会引入新列) df['new'] = df['SampleTime'].dt.strftime('%Y-%m-%d %H') df = df.drop_duplicates...(cell.value) new_sheet.append(data_lst) # 最后切记保存 new_workbook.save('新表.xlsx') print("满足条件的新表保存完成...这篇文章主要分享了使用Pandas从Excel文件中提取满足条件的数据并生成新的文件的干货内容,文中提供了5个方法,行之有效。
但是,如果在多个工作表中查找值并返回第一个相匹配的值时,可以使用VLOOKUP函数吗?本文将讲解这个技术。...最简单的解决方案是在每个相关的工作表中使用辅助列,即首先将相关的单元格值连接并放置在辅助列中。然而,有时候我们可能不能在工作表中使用辅助列,特别是要求在被查找的表左侧插入列时。...图3:工作表Sheet3 示例要求从这3个工作表中从左至右查找,返回Colour列中为“Red”对应的Amount列中的值,如下图4所示。 ?...B:B"}),$A3) INDIRECT函数指令Excel将这个文本字符串数组中的元素转换为单元格引用,然后传递给COUNTIF函数,同时单元格A3中的值作为其条件参数,这样上述公式转换成: {0,1,3...转换为: INDEX(Sheets,2) 转换为: INDEX({"Sheet1","Sheet2","Sheet3"},2) 结果为: Sheet2 这里,需要使用INDIRECT函数进一步构造来生成传递给
=countif(A:A,">"&C1) 统计在A列中大于C1单元格的有多少个。...(注意:使用通配符对文本数据进行统计时,*代表任意多个字符;?代表任意单个字符。) 三、实战案例 通过上面的介绍,大家都清楚了countif函数的常规用法,那下面通过案例演示来实操一下吧。...第一个参数为单元格B2:B30,也就是对“所属部门”这一列进行统计。 那我们统计什么呢? 第二个参数就是统计的条件。第二个参数是单元格H2,也就是要统计指定区域里,以H2单元格内容为条件的计数。...比如,要统计薪水列里,薪水大于15000的,统计公式如下: =countif($E$2:$E$30,">15000") 也就是说,对“薪水”列,即案例中的“E2:E30”区域里的薪水进行判断,判断的条件是...我们可以用countif来单条件计数,如针对“薪水”列,统计大于15000的有多少个,公式为: =countifs($E$2:$E$30,">15000") 我们可以用countifs函数来多条件计数,
还可以进行多个汇总,如下: ? 分类汇总可以自动生成一列数据,可以更快速地定位单元格。 这可以应用到给多个多行单元格合并,如下: ? 显然,实现了预期的效果。...COUNTIF COUNTIF用于根据条件进行计数,符合某个条件则计数,否则不计数,类似的用法还包括COUNTIFS、SUMIF等。 简单使用如下: ? 计数时使用较复杂的条件如下: ?...显然,有多个条件时,可以分别计数再进行算术计算。 有多个条件要满足时,还可以使用COUNTIFS,如下: ? 此时可以根据多个条件进行计数。...SUMIF 和COUNTIF类似,SUMIF是根据条件进行求和的,简单使用如下: 待求和数据所在的列和条件所在的列不是同一列时,稍微复杂一点,如下: 显然,此时需要传递3个参数,才能求和。...还可以根据多个条件进行求和,有多种方式,一种方式是增加辅助列拼接两个条件,再进行求和,如下: 可以看到,计算出来的结果是依赖于辅助列的,如果删除或修改辅助列,结果也会发生变化。
7.用CountIF 和 SumIF 概括统计数据 CountIF 是一个函数算法,统计在特定范围内,满足既定条件的单元格的个数。其中的第一个参数,是你想统计的范围;而第二个参数则是你的条件。...比方说:=countif(A1:A10,1) 即在A1:A10的范围内,单元格内容是1个数。 COUNTIF(range,criteria) ?...SumIF函数的用法是根据指定条件对若干单元格、区域或引用求和。下面是我们在计算每一个作者的总体浏览数。范围上来说,作者名字的范围格式前后并不一致,但总数相同。...B列对应相应作者的名字,E列则对应每个作者作品的浏览数。...10.用RAND函数生成随机数 你可以使用RAND()函数来生成一个single型的随机数,小于1但大于等于0 。括号内空着就成,无需键入任何参数。新的随机数会随着工作簿的更新而重新生成。
7用CountIF 和 SumIF 概括统计数据 CountIF 是一个函数算法,统计在特定范围内,满足既定条件的单元格的个数。其中的第一个参数,是你想统计的范围;而第二个参数则是你的条件。...比方说:=countif(A1:A10,1) 即在A1:A10的范围内,单元格内容是1个数。 COUNTIF(range,criteria) ?...SumIF函数的用法是根据指定条件对若干单元格、区域或引用求和。下面是我们在计算每一个作者的总体浏览数。范围上来说,作者名字的范围格式前后并不一致,但总数相同。...8用VLOOKUP找出你想要的数据 VLOOKUP是按列查找函数,最终返回该列所需查询列序所对应的值。此处我们可以看到一个数据表,第一列是法学院排名。...10用RAND函数生成随机数 你可以使用RAND()函数来生成一个single型的随机数,小于1但大于等于0 。括号内空着就成,无需键入任何参数。新的随机数会随着工作簿的更新而重新生成。
. ---- 0x02 常用函数 RAND() : 随机数生成函数取值范围0~1,例如0.996534369 INT() :数值取整 CHAR() : 根据整数生成对应的ASCII码 COUNTIF(区域...:条件) : 判断条件值是否在指定区域中。...26+97))&CHAR(INT(RAND()*26+65))&INT(RAND()*9+1)&CHAR(INT(RAND()*26+97)) 2.利用countif函数判断某一列的值是否在指定列中 描述...: 例如判断C2值是否在E列区域中出现,存在则为1,不存在则为0,同时我们可以按住右下角往下拖,即可按照顺序进行判断。...=COUNTIF(E:E,C2) # 往下拖拽 C列 行号会递增, 通常如此食欲 =COUNTIF(E:E,C3) =COUNTIF(E:E,C4)
我们可能熟悉使用INDEX、SMALL等在给定单列或单行数组的情况下,返回满足一个或多个条件的值的列表。这是一项标准的公式技术。...在《Excel公式练习32:将包含空单元格的多行多列单元格区域转换成单独的列并去掉空单元格》中,我们讲述了一种方法,给定由多个列组成的单元格区域,从该区域返回由所有非空单元格组成的单个列。...可以很容易地验证,在该公式中的单个条件可以扩展到多个条件,因此,我们现在有了从一维数组和二维数组中生成单列列表的方法。 那么,可以更进一步吗?...本文提供了一种方法,在给定一个或多个相同布局的工作表的情况下,可以创建另一个“主”工作表,该工作表仅由满足特定条件的所有工作表中的数据组成。并且,这里不使用VBA,仅使用公式。...实际上,该技术的核心为:通过生成动态汇总小计数量的数组,该小计数量由来自每个工作表中符合条件(即在列D中的值为“Y”)的行数组成,然后将公式所在单元格相对行数与该数组相比较,以便有效地确定公式所在行中要指定的工作表
2、用条件格式避免重复。 选定A列,点"格式"->"条件格式",将条件设成“公式=COUNTIF($A:$A,$A1)>1”,点"格式"->"字体"->"颜色",选定红色后点两次"确定"。...用格式刷将A2单元格的条件格式向下复制。 B列可参照此方法设置。...(二)、如果是A列与B列整体比较(即相同数据不在同一行): 假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为: “公式”=COUNTIF($B:$B,$A2)=0 点“格式”->...用格式刷将A2单元格的条件格式向下复制。 B列可参照此方法设置。 按以上方法设置后,AB列均有的数据不着色,A列有B列无或者B列有A列无的数据标记为红色字体。...A1",INDEX(X,ROW())) 将公式向下填充,直到出错为止,目录就生成了。 采编至中国统计网
学习了excel函数:countif。...表达式:COUNTIF(数据区域,条件),作用:对数据区域内符合条件单元格计数 具体应用 在“姓名”(列A)后插入一列(列B),在B2单元格输入公式“=IF(COUNTIF(A2:A2,A2)>1,”重复...---- COUNTIF 函数语法具有下列参数: range 必需。要对其进行计数的一个或多个单元格,其中包括数字或名称、数组或包含数字的引用。空值和文本值将被忽略。...例如,条件可以表示为 32、”>32″ 、B4、”苹果” 或 “32”。
对于SQL相信大家都不陌生,可以通过条件进行查询某一值的个数,或者按某一字段进行聚合计数,例如查看某一分类下的数量。...COUNTIF 和 COUNTIFS 只需要借助Excel的函数就能完成这类的操作,我们看一下这两个函数的文档。 COUNTIF: COUNTIF(要检查哪些区域?...和 * ,分别是匹配单个字符和多个字符。 COUNTIFS:它的语法和表达式写法与COUNTIF是相同的,只不过COUNTIFS支持多个范围和条件的联合计数。 COUNTIFS(要检查哪些区域?...可以使用多个区域和查询的内容,但一定要成对出现。 ? 通过对单元格范围和单元格行或列对固定,可以对单元格进行拖动填充,增加$符号会固定行或列。...小贴士:输入函数时可以使用Tab补齐,输入或选择单元格后可以按F4加行列的锁定。 你学会了吗?
例如:拟设一个新项目,拟设一个新的政策。 (2)拟任 意思是预先任命或计划任命的人选。通常用于描述在实际任命之前,先在计划或考虑中的人选。例如:拟任新的部门经理,拟任新的董事会成员。...问题4 Excel多列判重 现在要将A列的每行,和C、D两列相比,如果有重复的,B列对应行写"重复",否则写"不重复", 逻辑上,就是判断A1的值,是否和C列、D列有交集,可以用IF、OR、COUNTIF...几个函数整合,如下所示,如果再多比较几列的数据,只需要增加COUNTIF条件, =IF(OR(COUNTIF(C:C, A1) > 0, COUNTIF(D:D, A1) > 0), "重复", "不重复...") B列会根据判断的情况,标记不同的值, 问题5 LaTeX LaTeX是一种基于TeX的排版系统,是一种用于排版的高级语言,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪...LaTeX的主要特点是即使使用者没有排版和程序设计的知识,也能充分发挥TeX的强大功能,生成高质量的文档,尤其适用于生成复杂表格和数学公式。
2、用条件格式避免重复。 选定A列,点”格式”->”条件格式”,将条件设成“公式=COUNTIF($A:$A,$A1)>1”,点”格式”->”字体”->”颜色”,选定红色后点两次”确定”。...用格式刷将A2单元格的条件格式向下复制。 B列可参照此方法设置。...(二)、如果是A列与B列整体比较(即相同数据不在同一行): 假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为: “公式”=COUNTIF($B:$B,$A2)=0 点“格式”->...用格式刷将A2单元格的条件格式向下复制。 B列可参照此方法设置。 按以上方法设置后,AB列均有的数据不着色,A列有B列无或者B列有A列无的数据标记为红色字体。...A1″,INDEX(X,ROW())) 将公式向下填充,直到出错为止,目录就生成了。
昨天有个网友在公众号留言问我~ 统计符合B列条件的A列不重复的计数(多个重复算一个) 我读了两边,领悟了他的问题,就是统计符合条件的另外一列的不重复单元格个数!...这个问题有三个关键点 1、符合条件 2、另外一列 3、不重复 先说说如何解决符合条件的问题! 这个比较简单,Countif函数可以完美搞定~ ?...=COUNTIF(B1:B9,D2) =COUNTIF(判断的列,判断条件) 好吧~感觉帮助不大,这个函数解决不了问题哇! 这个问题的关键是什么呢?是解决如何统计非重复值的问题!...公式:{=SUM(--(MATCH(A1:A9,A1:A9,0)=ROW(A1:A9)))} 公式大括号括起来,证明编辑函数后是Ctrl+Shift+Enter键结束的,大括号是自动生成的,不是手动输入的哦...今天就这样啦~ 原问题是解决一列符合某个条件另外一列的非重复值! ? 我们简化一下,改为B列等于山东的,A列非重复值! 那我们思考一下,现在变成B列需要判断,求A列非重复值!
IF函数 1.1 基本形式 IF(条件判断,如果符合这个条件则为,如果不为这个条件则为) 对于IF函数而言,我们在处理数据用的最多的当时进行数据类型转换的时候,即把连续性的数据转换为分类变量。...这个时候我们就只需要在后面的一列输入=IF(B2 < 60, 2,1)即可。在这个公式里面,B2 < 60代表判断B2这个位置的数字是不是比60小,如果是则为2,如果不是则为1。 ?...1.4 IF函数嵌套2 以上的嵌套式我们在进行多条件的嵌套的。同样的我们也可以进行多个不同函数的嵌套。例如我们在生存分析的时候,需要把数据按照中位值进行分组。...这个时候,如果要进行条件判断的时候,我们就需要计算这列数据的中位值,在excel我们可以直接使用MEDIAN来计算中位值的。...这个函数可以对某一个范围的内容基于某一个标准来进行判断。最后来统计出符合这个标准的所有的总数。 例如上面的例子当中,最后我们把年龄分成了两组(大于60和小于60)。 ?
2、用条件格式避免重复。 选定A列,点"格式"->"条件格式",将条件设成“公式=COUNTIF($A:$A,$A1)>1”,点"格式"->"字体"->"颜色",选定红色后点两次"确定"。...用格式刷将A2单元格的条件格式向下复制。 B列可参照此方法设置。...(二)、如果是A列与B列整体比较(即相同数据不在同一行): 假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为: “公式”=COUNTIF($B:$B,$A2)=0 点“格式”->...用格式刷将A2单元格的条件格式向下复制。 B列可参照此方法设置。 按以上方法设置后,AB列均有的数据不着色,A列有B列无或者B列有A列无的数据标记为红色字体。...A1",INDEX(X,ROW())) 将公式向下填充,直到出错为止,目录就生成了。
本文的重点是基于多个条件筛选数据,并将结果放在一张新的工作表中。为此,我们仍使用Evaluate方法。 我们要做的是测试数据集的第3列中是否有“No”或“Maybe”。...If Application.CountIf(Sheet1.Columns(Col), "Yes") = 0 Then Exit Sub 接着,我们告诉VBA数据集从哪里(第10行)开始: With Sheet1...我们希望评估的列是第3列,该列中包含Yes、No或Maybe。以下变量: Dim Col As Integer Col = 3 可以修改Col=?,其中?代表要评估的列。...下一个可以修改的部分是希望数组的大小以及希望在输出中包含哪些列。在下面的示例中,有4列。...Sub FilterToNewLoc2Crit() Dim ar As Variant Dim Col As Integer Col = 3 If Application.CountIf
领取专属 10元无门槛券
手把手带您无忧上云