前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >或关系模糊匹配求均值(pandas插播版7)

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

作者头像
用户1332619
发布2018-03-08 17:57:40
1.6K0
发布2018-03-08 17:57:40
举报
文章被收录于专栏:阿凯的Excel

上期用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

谢~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿凯的Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档