准备工作:下载示例数据,提取码:tkqn 数据例子数据预览

在Excel中,有个筛选的功能,可以根据条件,去筛选想要的数据,之后想删除、想修改、想添加文字,等等都比较方便。在Python中也可以根据条件,去筛选数据。

找出购买金额最多的用户

上篇文章求出购买金额最多的用户ID是A3OXHLG6DIBRW8,

根据用户ID,筛选出这名用户的所有订单:

most_sale_user = amazon_data[amazon_data['UserId']=='A3OXHLG6DIBRW8'] #购买金额最多的用户 订单

这个most_sale_user也是一个dataframe结构,可以对它进行后续的处理,如统计、修改等等。

这个amazon_data['UserId']=='A3OXHLG6DIBRW8'是长这样的:

然后再用 amazon_data[amazon_data['UserId']=='A3OXHLG6DIBRW8']去求出等于True的记录。

上面是知道购买最多的用户是A3OXHLG6DIBRW8的情况下,进行的筛选。如果一个新的数据,我并不想先查看哪个最多,想一次性就求出most_sale_user怎么办呢?

前提是有了用户购买金额的分组,也就是:

user_sales = amazon_data.groupby('UserId')['price(yuan)'].sum().sort_values(ascending=False) #每个用户的成交金额

user_sales是一个Series结构,左边是索引,UserId,右边是索引对应的数值。user_sales是按照购买金额降序排列的,第一个记录就是购买金额第一名的用户。那么直接找到第一个记录的索引,也就找到了购买最多的用户ID。

user_sales.index,得到它的所有索引值,即用户ID。user_sales.index[0]就是索引值的第一个。

most_sale_user_0 = amazon_data[amazon_data['UserId']=='A3OXHLG6DIBRW8'] #购买金额最多的用户 订单

most_sale_user_1 = amazon_data[amazon_data['UserId']==user_sales.index[0]] #购买金额最多的用户 订单 等同于上一句

这两句话是同等的,只不过后一句更有灵活性,如果换了一批订单数据,后一句仍旧可以使用。

找出大于均价的订单

上一篇文章,已经求出了订单均价,也就是52.19元:

与上一个找最高金额用户的方式一样,可以直接使用 52.19,但是灵活性低。(写代码一定要注意灵活性和重复使用性,这也是为什么需要写自定义函数的原因,传入不同的数据,可以得到相同的处理步骤。)

greater_mean_0 = amazon_data[amazon_data['price(yuan)']>=52.19]

greater_mean_1 = amazon_data[amazon_data['price(yuan)']>=amazon_data['price(yuan)'].mean()]得到价格大于均值的订单

按条件赋值

比如,新增一列叫“类别”,用来判断订单价格是否大于均价。这就涉及到:先筛选出大于均值、小于均值的两组记录,再分别赋值:大于均值、小于均值。

amazon_data.loc[amazon_data['price(yuan)']>=amazon_data['price(yuan)'].mean(),'类别'] = '大于均值'

于是得到了新的一列【类别】,里面大于均值的订单,都已经赋值了。那么小于均值的,就有两种方法:

amazon_data.loc[amazon_data['price(yuan)']

amazon_data['类别'].fillna('小于均值',inplace=True) #填充空值,要inplace=True,否则不会改变

对,就是将【类别】列填充空值,因为就正反两个选项嘛,大于均值,剩下的就是小于均值了。

别小看这个,如果条件多的时候就很方便了,比如好几个条件,=a的填一个,=b的填一个,=c的填一个,剩下的填一个。如果用条件的话,剩下的还得限制 不等于a且不等于b且不等于c,直接用一个填充空值就可以了。

找出某几个用户的订单

比如某几名用户被技术判断为风险用户,需要人工筛选出他们的订单,并判断是否有风险。假如要找出【A3SGXH7AUHU8GW,A1D87F6ZCVE5NK,ABXLMWJIXXAIN,A395BORC6FGVXV】这四名用户的订单:

danger_user = ['A3SGXH7AUHU8GW','A1D87F6ZCVE5NK','ABXLMWJIXXAIN','A395BORC6FGVXV'] #将用户存入list里

danger_order = amazon_data[amazon_data['UserId'].isin(danger_user)] #找出他们的订单 isin()

同样可以用.isin() 找出某些城市、某些商品等等。

找出 9月-10月 的订单

之前已经处理过,将字符串格式改成了时间格式:

现在要找出2018.9.1-2018.10.31期间的订单:

date_range_order = amazon_data[(amazon_data['日期date']>='2018-09-01')&(amazon_data['日期date']<'2018-11-01')]

# & 代表与, | 代表或

找出包含“good”评价的订单

good_order = amazon_data[amazon_data['Text'].str.contains('good')]

那么如何找出包含 good或great的呢?很简单,求或;如何找出不包含good的呢?取反。

good_great_order = amazon_data[amazon_data['Text'].str.contains('good|great')] #good 或 great

no_good_order = amazon_data[~amazon_data['Text'].str.contains('good')] #不包含good 没错,前面加一个小波浪就是取反

不同的列,也可以添加条件

比如,要找时间在9月之后的,评价包含good的,全部框在一起就行了

order = amazon_data[(amazon_data['Text'].str.contains('good|great'))&(amazon_data['日期date']>='2018-09-01')]

专栏列表

python按照日期筛选excel_【Python代替Excel】6:按条件筛选相关推荐

  1. Excel VBA 多条件筛选及汇总统计

    Excel VBA 多条件筛选 AdvancedFilter 汇总统计 sumproduct Range与Array交换 在日常工作中,面对Excel表格数据,为了分类进行统计,通过对表格数据筛选获取 ...

  2. Excel·VBA多条件筛选组合结果

    Function strTOF(str$) As Boolean'用于计算字符串判断True/False,默认返回False'适用vba比较运算符:速度比较慢,但通用Dim i&, j& ...

  3. python 数列筛选_对numpy中的数组条件筛选功能详解

    在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...

  4. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) 1 ...

  5. excel子表与母表筛选_滚动浏览Excel表中的筛选器项目

    excel子表与母表筛选 To see specific data in an Excel Table, you can select an item from the drop down filte ...

  6. Excel操作-多条件筛选

    一.背景 一般情况下,Excel多条件筛选,可以直接打开数据栏下的"筛选"功能,然后多值勾选即可. 但是如果可选项过多,通过多值勾选的方式实现多条件筛选就不现实了.这里可以通过使用 ...

  7. php多条件筛选前台功能,JavaScript前端数据多条件筛选功能实现代码

    有时候也会需要在前端进行数据筛选,增强交互体验.当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很*烦.下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置.本文主要为大家详 ...

  8. vue 点击按钮筛选功能_vue实现前端列表多条件筛选

    本文实例为大家分享了vue实现前端列表多条件筛选的具体代码,供大家参考,具体内容如下 1.先上图: 2.搜索条件绑定的数据是: filterForm:{ schoolName:'',//输入的学校名称 ...

  9. android 电影筛选,自己造轮子--android常用多条件筛选菜单实现思路(类似美团,爱奇艺电影票下拉菜单),--android电影票,选择实现方式若是看到第一...

    自己造轮子--android常用多条件筛选菜单实现思路(类似美团,爱奇艺电影票下拉菜单),--android电影票,选择实现方式若是看到第一 就在昨天,我的一个项目DropDownMenu被daima ...

  10. python过去日期_利用python获取当前日期前后N天或N月日期的方法示例

    前言 最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 ...

最新文章

  1. 互联网创业如何与传统行业人士合作?
  2. 论文阅读:DENSELY CONNECTED CONVOLUTIONAL NETWORKS
  3. VMWare桥接、NAT和only-host三种模式
  4. Volley简单学习使用五—— 源代码分析三
  5. 活动目录服务器(windows server 2008)
  6. Phpstorm界面不停的indexing,不停的闪烁
  7. 长城 宽带 +招商银行专业版
  8. oracle释放shm空间,安装11gRAC时提示/dev/shm大小不足
  9. 26个要素,仅仅依靠百度打造成功网站
  10. OMG Network与安全多方计算提供商Enya达成合作
  11. 在Visual Studio Code运行单个js文件需要用到插件
  12. java赋值兼容原则,多态问题抛出(赋值兼容性原则遇上父类与子类同名函数的时候)...
  13. 板凳——————————————————c++(104)
  14. 返利网app android版
  15. Linux下JIRA版本5.0.1的安装.破解.汉化
  16. 什么是光端机,什么是PDH光端机,什么是SDH,什么是SPDH
  17. Civil 3d 路线之固定图元(AlignmentEntity)部分分析
  18. 【字符集】解决docker 容器中中文乱码问题
  19. 腾讯云服务器购买详细流程(手把手教程)
  20. 什么是人工智能数据采集?

热门文章

  1. 人工智能研究中心快递柜——代码分析七
  2. 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能
  3. 常见的知识图谱(Wikidata、YAGO、ConceptNet、DBpedia)
  4. 教育行业课程介绍话术
  5. Creo4.0安装与VS2015环境下的开发配置
  6. uni-app生成app的兼容性调研报告
  7. 三分搜索--hdu2241 考研路茫茫——早起看书
  8. 【Python画图】不显示x、y坐标
  9. 亮相Google I/O,字节跳动是这样应用Flutter的
  10. 让dede系统 正文标题以拼音显示的方法