【python】复现一个python处理表格的脚本

原文在这里:

https://mp.weixin.qq.com/s/8gPEQzloDwWL_QB0uu5ulA

代码在这里

import pandas as pd
case1 = pd.read_excel("./2.条件求和.xlsx",sheet_name = "表1")
case1
      客户  区域  2017销售额  2018销售额
0  广东A公司  南区      268      119
1  广东B公司  南区      265      217
2  北京C公司  北区      182      206
3  北京D公司  北区       97      214
4  天津E公司  北区      237      233
5  重庆F公司  南区      121       68
6  成都G公司  南区      105      151
7  贵阳H公司  南区      191      226
case1_1_1 = case1[case1["区域"]=="南区"]
case1_1_1
      客户  区域  2017销售额  2018销售额
0  广东A公司  南区      268      119
1  广东B公司  南区      265      217
5  重庆F公司  南区      121       68
6  成都G公司  南区      105      151
7  贵阳H公司  南区      191      226
case1_1_1["2017销售额"].sum()
950
case1_1_1["2018销售额"].sum()
781
case1_2_1 = case1[(case1["区域"]=="北区") & (case1["2017销售额"]>100)]
case1_2_1
      客户  区域  2017销售额  2018销售额
2  北京C公司  北区      182      206
4  天津E公司  北区      237      233
case1_2_1["2017销售额"].sum()
419
case1_2_2 = case1[(case1["区域"]=="北区") & (case1["2018销售额"]>100)]
case1_2_2
      客户  区域  2017销售额  2018销售额
2  北京C公司  北区      182      206
3  北京D公司  北区       97      214
4  天津E公司  北区      237      233
case1_2_2["2018销售额"].sum()
653
case1_3_1 = case1[(case1["客户"].str.contains("广东")) | (case1["客户"].str.contains("天津"))]
case1_3_1
      客户  区域  2017销售额  2018销售额
0  广东A公司  南区      268      119
1  广东B公司  南区      265      217
4  天津E公司  北区      237      233
case1_3_1["2017销售额"].sum()
770
case1_3_1["2018销售额"].sum()
569

遇到的问题在这里

1、我把表格原文件都放在文稿里了(MAC系统)

2、中英文字符问题:表格里有中文名称,所以切换输入法的时候需要注意,尤其是双引号和小括号。双引号输对了是绿色(我用的shell),英文小括号旁边没有自动的空格,间距较小。

3、分清case1,case1_1_1,case1_2_1

4、理解清楚代码

用自己的语言解释代码

以下是我自己的解释,不一定符合python语法规范,仅供参考。

1、将表格放入case1

import pandas as pd
case1 = pd.read_excel("./2.条件求和.xlsx",sheet_name = "表1")
case1
      客户  区域  2017销售额  2018销售额
0  广东A公司  南区      268      119
1  广东B公司  南区      265      217
2  北京C公司  北区      182      206
3  北京D公司  北区       97      214
4  天津E公司  北区      237      233
5  重庆F公司  南区      121       68
6  成都G公司  南区      105      151
7  贵阳H公司  南区      191      226

2、筛选出case1中“区域”为“南区”的数据,并将数据赋给case1_1_1

case1_1_1 = case1[case1["区域"]=="南区"]
case1_1_1
      客户  区域  2017销售额  2018销售额
0  广东A公司  南区      268      119
1  广东B公司  南区      265      217
5  重庆F公司  南区      121       68
6  成都G公司  南区      105      151
7  贵阳H公司  南区      191      226

3、算一下case1_1_1(南区的数据)中2017年和2018年的销售总额

case1_1_1["2017销售额"].sum()
950
case1_1_1["2018销售额"].sum()
781

4、从“北区”“2017销售额”的数据中选出数额大于100的数据

case1_2_1 = case1[(case1["区域"]=="北区") & (case1["2017销售额"]>100)]
case1_2_1
      客户  区域  2017销售额  2018销售额
2  北京C公司  北区      182      206
4  天津E公司  北区      237      233

5、算出“北区”“2017销售额”的数据中选出数额大于100的数据总额

case1_2_1["2017销售额"].sum()
419

6、进行多种筛选,类似于EXCEL里的SUMIFS函数,进行某一分类下的某一小类的模糊筛选,并计算总数

(1)这里用到了case1[(case1[“类别”].str.contains(“小类1”)) | (case1[“类别”].str.contains(“小类2”))]以及|逻辑符“或”,提高了筛选效率。

case1_3_1 = case1[(case1["客户"].str.contains("广东")) | (case1["客户"].str.contains("天津"))]
case1_3_1
      客户  区域  2017销售额  2018销售额
0  广东A公司  南区      268      119
1  广东B公司  南区      265      217
4  天津E公司  北区      237      233
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值