或关系模糊匹配求均值(pandas插播版7)

上期用Excel的复杂函数解决了或关系模糊匹配求均值。本期和大家分享一下如何使用Python的Pandas解决该问题。

郑重说明:本期只是分享解决方案,且pandas主要场景不在此,pandas是为了解决大数据而生的,本次是杀鸡也用宰牛刀了!

重新描述问题:

我有一个销售列表,我想找到包含石原里美、裴秀智、李智恩的销售金额的均值!

先把结论放上:

代码如下:

import pandas as pd

xlsx = pd.ExcelFile(r"文件路径-可替换")

df =pd.read_excel(xlsx,"升级版")

save = df[(df["名称"].str.find("石原里美", start=0, end=None)>=0)|(df["名称"].str.find("裴秀智", start=0, end=None)>=0)|(df["名称"].str.find("李智恩", start=0, end=None)>=0)]

save["销售金额"].mean()

代码解析:

1、import pandas as pd

注释:导入pandas包

2、xlsx = pd.ExcelFile(r"文件路径-可替换")

注释:将文件路径保存为xlsx路径,路径前面的r代表后面接的是纯文本,无转义字符

3、df =pd.read_excel(xlsx,"升级版")

注释:pd.read_excel(第一个参数为文件路径,第二个参数为打开哪个表)

我们附一个图片展示一下df到底得到了什么

df其实就是将整个Excel表的内容

4、save = df[(df["名称"].str.find("石原里美", start=0, end=None)>=0)|(df["名称"].str.find("裴秀智", start=0, end=None)>=0)|(df["名称"].str.find("李智恩", start=0, end=None)>=0)]

我们简化一下代码!

save = df[(df["名称"].str.find("石原里美", start=0, end=None)>=0)]

我们发现结论是将名称中包含石原里美的都筛选出来了,为什么会有这个效果呢?

df["名称"].str.find("石原里美", start=0, end=None)>=0)

df["名称"] 代表列出某一列

.str.find("石原里美", start=0, end=None) 代表查询字符串内是否包含石原里美,且从0开始查找,本方法返回值是文本在大文本中的位置,如果大于等于0,证明这个文本是包含石原里美的

df[(df["名称"].str.find("石原里美", start=0, end=None)>=0)]

就实现了如果包含石原里美,则筛选出来

如果是多个条件呢?就将判断条件中间增加竖线作为间隔

公式太长,没有显示完全,反正就是将包含三个关键字的都罗列出来了,最后一步就是将销售金额求均值。

5、save["销售金额"].mean()

.mean()方法可以解决我们的需求,完成了全部既定任务~

大概就是这样,本次将Python代码和Excel文件一起送给各位!

链接: https://pan.baidu.com/s/1smW5U7F 密码: d9ug

谢~

原文发布于微信公众号 - 阿凯的Excel(akexcel)

原文发表时间:2018-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阿杜的世界

正则表达式生成—VerbalExpressions

从听说正则表达式这个词开始,我就没学会过怎么写正则表达式,也是有认真学过的,但是由于不经常用,学一次忘一次。前段时间遇到VerbalExpressions这个神...

432
来自专栏网络

编码在网络安全中的应用和原理

前言:现在的网站架构复杂,大多都有多个应用互相配合,不同应用之间往往需要数据交互,应用之间的编码不统一,编码自身的特性等都很有可能会被利用来绕过或配合一些策略,...

2776
来自专栏惨绿少年

Shell编程基础篇-上

1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层...

1750
来自专栏Python小屋

Python生成强密码字典文件

本文要点在于演示如何使用正则表达式验证密码强度,以及如何生成大量字符的排列。由于下面代码生成的字典过于庞大,所以并没有很直接的应用场景,可对生成的强密码再次进行...

3277
来自专栏帮你学MatLab

Robotics System Toolbox路径规划

filePath = fullfile(fileparts(which('PathPlanningExample')),'data','exampleMaps....

1292
来自专栏horstxu的博客

一图弄懂ASCII、GB2312、GBK、GB18030编码

最近项目中涉及到了解析文件内容的需求,文件中全都是中文,由于这一过程中碰到的乱码问题实在过多,所以特地花时间研究了一下中文编码。本文中先介绍一下ASCII,GB...

305
来自专栏有趣的Python

4-C++远征之起航篇-学习笔记

链接: https://pan.baidu.com/s/1SgdThGYaLDyXDFKvaBSa5A 密码: 2333

814
来自专栏偏前端工程师的驿站

Java魔法堂:注解用法详解——@SuppressWarnings

一、前言                                     编码时我们总会发现如下变量未被使用的警告提示: ?   上述代码编译通过且可以...

16610
来自专栏magicsoar

C++编译与链接(2)-浅谈内部链接与外部链接

发现每次写技术博客时,都会在文章开头处花费一番功夫 ...从前,有一个程序员....他的名字叫magicsoar 为什么有时会出现aaa已在bbb中重定义的错误...

1989
来自专栏pangguoming

Python相对、绝对导入浅析

这篇文章从另外一个不同的视角来分析一下Python的import机制,主要的目的是为了搞懂import中absolute、relative import遇到的几...

3767

扫描关注云+社区