范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python数据分析,办公自动化,如何数据分组与透视?

  数据分组是对 相同类别 的数据进行汇总,而数据透视表是通过对行或列的不同组合 对数据进行汇总,所使用的汇总方法有求和、计数、平均值、标准差等,本文使用Python对数据进行数据分组和数据透视,下面一起来学习。一、groupby分组
  这里首先导入pandas和datetime库,生成一个包含"用户ID","日期","城市","年龄","性别","成交量"的DataFrame数据。 import pandas as pd import datetimedf = pd.DataFrame({"用户ID":[1001,1002,1003,1004,1005,1006],                    "日期":pd.date_range(datetime.datetime(2021,3,23),periods=6),                    "城市":["北京", "上海", "广州", "上海", "杭州", "北京"],                    "年龄":[23,44,54,32,34,32],                    "性别":["F","M","M","F","F","F"],                    "成交量":[3200,1356,2133,6733,2980,3452]},                     columns =["用户ID","日期","城市","年龄","性别","成交量"]) df
  groupby可以通过传入需要分组的参数实现对数据的分组,参数可以是单列,也可以是多列,分组后可以对单列进行函数处理,也可以对多列进行函数处理。 #按照单列分组 df.groupby("城市").count()#按照单列分组 df.groupby("城市")["用户ID"].count()
  先筛选列再groupby与先groupby再筛选列得出来的结果是一样的。 # 先筛选,然后groupby要加df df["成交量"].groupby([df["城市"],df["性别"]]).sum()
  如果先聚合,聚合列可以只写列名,不加变量名,因为没有筛选某列前,可以直接搜索到列。 #先groupby()再写列,列不用加df df.groupby(["城市","性别"])["成交量"].count()  #计数
  #先groupby()再写列,列不用加df df.groupby(["城市","性别"])["成交量"].sum()  #求和
  使用unstack函数,增加数据透视的效果。 # 增加透视效果 df["成交量"].groupby([df["城市"],df["性别"]]).sum().unstack()
  as_index=False,会按从0开始的数据索引。 #分组键一般会作为分层索引,如果不想要,可以在group()中加上参数:as_index=False,会按从0开始的数据索引 df.groupby([df["城市"], df["性别"]],as_index=False).sum()
  先数据分组,然后做描述分析。 df.groupby("城市").describe()
  size显示数据组分类的多少。 df.groupby("城市").size()
  二、group by与agg的用法
  groupby与agg两者可以结合使用,可以对单列或多列进行单一或多个不同的聚合运算, 常用聚合函数有count,sum,std等,直接用函数名加引号即可,如果有多个函数时,可以用逗号隔开; # 常用聚合函数用引号即可引用 df.groupby(["城市", "性别"]).agg("sum")
  列表可以同时使用多个函数,用逗号隔开。 # 列表可以同时使用多个函数 df.groupby(["城市", "性别"]).agg(["mean","std","sum","count"])
  reset_index用来重置索引。 # 列表可以同时使用多个函数 df.groupby(["城市", "性别"]).agg(["mean","std","sum","count"]).reset_index()
  用元组修改函数名。 # 可以用元组修改函数名 df.groupby(["城市", "性别"]).agg([("No.1", "sum"), ("No.2", "std")])
  可以对不同的列使用不同的函数进行运算。 #如果不同列用不同函数,可以对不同的列使用不同的函数 df.groupby(["城市", "性别"]).agg({"年龄": ["max","min"],"成交量": ["sum", "count", "std"]})
  三、apply与agg的用法
  apply与agg相同点:都可以对分组后的结果进行运算;
  apply与agg不同点:agg只能对单列,apply可以对多列进行;apply可以使用匿名函数,agg不可以使用匿名函数。 #首先定义一个top函数,使用apply函数进行运算 def top(df, n=2, column="成交量"):     return df.sort_values(by=column)[-n:]   # 自建函数  df.groupby("城市").apply(top)
  直接使用apply函数进行聚合运算。 df.groupby("城市").apply(top, n=3, column="成交量")
  四、cut与qcut的用法
  qcut是等样本数,cut是等值区间分,groupby和cut和qcut结合使用,可以对等值或等样本数分组后的结果进行分析。 #使用numpy生成两个随机数 import numpy as np df = pd.DataFrame({"data1":np.random.randn(1000),                    "data2": np.random.randn(1000)}) df.head()
  将数据data1等值区间四等分。 #将数据data1等值区间四等分 quariles = pd.cut(df.data1, 4) quariles[:10]
  数据data1等样本数四等分。 #将数据data1等样本数四等分 quriles_1 = pd.qcut(df.data1,4) quriles_1[:10]五、apply与applymap的用法
  apply函数主要用于对DataFrame中的某一column或row中的元素执行相同的函数操作,而applymap函数主要用于对DataFrame中每一个元素执行系统的操作,apply和applymap都要与lambda结合使用。#首先生成A,B,C的一个随机数组 import numpy as np df = pd.DataFrame({"A":np.random.rand(3),                    "B": np.random.rand(3),                    "C": np.random.rand(3) }) df.head()
  使用apply函数,对A列的每一个元素加1。#对A列的每一个元素加1 df["A"].apply(lambda x:x+1)
  使用applymap对表内的每个元素加1。#对表内的每个元素加1 df.applymap(lambda x:x+1)
  定义一个get函数,对data2数据使用apply函数做聚合运算。 def get(group):     return {"min":group.min(),"max":group.max(),"count": group.count(),"mean": group.mean()}  df.data2.groupby(quariles).apply(get)
  使用unstack函数显示数据透视表效果。 df.data2.groupby(quariles).apply(get).unstack()
  labels=False采用默认的0开始的索引。 # 去掉分组数值lable,采用默认的0开始的索引 q = pd.qcut(df.data1, 10, labels=False)   df.data2.groupby(q).apply(get).unstack()六、数据透视表
  数据透视表使用的是pivot_table函数,接下来介绍该函数使用最多的几个参数。data表示使用数据透视表数据,values表示计算值,index表示数据透视的行,columns表示数据透视的列,aggfunc表示计算类型,margins表示是否显示合计列,margins_name表示合计列的名字。 pivot_table(data, values=None, index=None, columns=None, aggfunc="mean", fill_value=None, margins=False, dropna=True, margins_name="All")
  margins显示合计,并且margins_name修改合计名称。 #margins显示合计,margins_name修改合计名称 pd.pivot_table(df,values = "用户ID",columns ="性别",index="城市",aggfunc="count",margins = True,margins_name ="合计")
  当数据透视结果有缺失值时,用fill_value = 0缺失值填充。 #fill_value = 0缺失值填充 pd.pivot_table(df,values = "用户ID",columns ="性别",index="城市",aggfunc="count",fill_value = 0)
  aggfunc={"用户ID":"count","成交量":"sum"},对用户ID做计数运算,对成交量做求和运算。 pd.pivot_table(df,values = ["用户ID","成交量"],columns="性别",index="城市",aggfunc={"用户ID":"count","成交量":"sum"},fill_value = 0)
  reset_index对数据透视结果重置索引。 pd.pivot_table(df,values = ["用户ID","成交量"],columns="性别",index="城市",aggfunc={"用户ID":"count","成交量":"sum"},fill_value = 0).reset_index()

谷歌在俄罗斯被罚款350万卢布累计罚款超6000万卢布品玩2月17日讯,据市场消息,近日,俄罗斯因谷歌未能删除被禁内容而罚款谷歌350万卢布(4。6万美元)。此前,谷歌已因同类问题遭到俄罗斯多次罚款,目前已累计超6000万卢布(超80360勒索病毒Coffee来袭,定向攻击科研院所近日,360安全大脑监测发现,一种名为coffee的新型勒索病毒,正在针对国内高校和研究所发起攻击。据悉,该勒索病毒不仅能够通过钓鱼邮件qq群附件等多种方式进行传播,感染系统中的其Android13来啦!这次又有什么新花样?哈喽艾瑞巴蒂还记得前不久Android12Lbeta版刚亮相谷歌又迅速发布了Android13你是不是也一脸懵怎么Android12还没用上13这么快就来了?不得不承认谷歌探索移动事关大部分安卓手机!Android13要来了早在2022年2月10日,就是上个星期,谷歌推出了Android13的第一个开发者预览版并打算在5月GoogleIO测试版发布之前,还会有一个或两个预览版。新特性隐私和安全谷歌声称高通希望提前推出骁龙8Gen1Plus,以取代现有的骁龙8Gen1在去年末的骁龙技术峰会上,高通(Qualcomm)正式推出了新一代的骁龙8移动平台,也就是Snapdragon8Gen1。根据高通的介绍,骁龙8移动平台采用了三星4nm工艺,使用了如果微信不再免费,实行收费模式,会造成什么影响?微信但凡还有一点理智,都不会采取付费模式,一旦微信开启付费模式,很快便会被其他互联网公司取代。不知道大家还记不记得当年的QQ,那时候日活跃量最大的一款社交软件便是他,虽然不收费,但5款旗舰手机续航横评,iPhone13ProMax稳坐第一,小米表现抢眼还没有发布就已经被捧上安卓机皇的三星GalaxyS22UItra终于发布了,和上一代一样,今年的三星GalaxyS22UItra依旧配备了5000mAh超大电池,而上一代,也就是S车企逆流造手机,醉翁之意在哪?小米苹果等手机商跨界事实上,不止是吉利,特斯拉CEO造车已非新鲜事,然而,居然有车企逆流而上开始造手机。1月底,有媒体报道,吉利集团旗下手机公司正与魅族接触洽谈收购事宜。多位接近交商务部跨境电商5年增长近10倍全国跨境电商综试区增至132个人民网北京2月17日电(记者赵竹青)近日,国务院发布关于同意在鄂尔多斯等27个城市和地区设立跨境电子商务综合试验区的批复,同意在鄂尔多斯市扬州市镇江市等27个城市和地区设立跨境电子不拉网线也能上网?有电就有网,全国通用,蒲公英X4C4G路由器听说过不拉网线也能上网的路由器吗?无论走到哪,只要有电就有网,普通人一听可能觉得这是假的,路由器不连宽带怎么可能有网?我们家里普通的路由器确实必须有宽带才能上网,但是4G路由器可以国内显卡小幅降价刚需入手趁现在,短期内恐怕又要缺货本来以为国内第一波打击虚拟货币的政令,能让显卡这样高溢价的产品稍微消停一些,不过没想到显卡的价格依然坚挺,而且缺货的问题愈加明显。不过最近国内再次强调对虚拟货币的打击,多个省市也深
小鹏P5的双激光雷达有多香?车评人20万级性价比首选当下什么车型最热门?相信凡是对汽车圈子有所了解的人肯定都会说新能源汽车。没错,2021年,车圈刮起了智能风,一大批造车新势力崛起,智能座驾广泛走进人们的视野。智能汽车的一大标志性特维密为何选择入驻京东?8月9日,维多利亚的秘密宣布入驻京东,同时维密京东官方旗舰店也正式开始营业,自此,又一国际品牌加入京东平台。维密为何选择入驻京东?受疫情影响,国外市场至今仍未完全恢复,国际品牌受到华为Mate50系列最新爆料5G有望回归,这3大亮点更是大放异彩朋友们,大家好!欢迎您点开笑呵呵的小丑的文章,您的每一次浏览都是对小编最大的鼓励!事不宜迟,咱们进入本篇的正题。前段时间,华为发布了最新的P50系列手机。尽管整体的配置不落俗套,特服务多个大型房地产商,智能洗手间物联网管理系统专注客户体验公厕环境脏乱难闻,卫生间无法使用,分布不合理,出门在外一厕难求已成为现代人普遍的诟病。为了解决这一痛点,智能洗手间物联网管理系统服务商blutech。io,重点聚焦为企业和购物中心一加9跌至3399元,我来告诉你们值不值由于小米MIX4荣耀Magic3系列iQOO8系列这些骁龙888Plus平台的机型已全部官方确认,个人就想知道上半年骁龙888平台的机型如何了。因为新旗舰出现老旗舰肯定会降价促销的购机指南2021年8月最具性价比游戏本排行榜截止到8月份已经出了不少新款游戏本,很多喜欢玩游戏的小伙伴在选购游戏本的时候经常不知道怎么选,那么2021年8月有哪些高性价比游戏本呢?今天我们就来盘点一下值得选购的高性价比游戏本诺基亚9现身后置五摄加骁龙888Plus,你会买吗?诺基亚作为一代王者,随着智能机的发展逐步没落,但诺基亚似乎并未完全放弃手机业务,从前几年发布的多款新机中就能发现这一问题。不过,诺基亚并非完全推出手机市场,其依旧在更新自家的功能机涉事酒店回应阿里女员工事件酒店违规办房卡争议流程合规,全力配合警方调查8月10日晚间,亚朵ATOUR就阿里女员工事件中受到社会关注的酒店是否存在违规办理房卡问题发表回应称,经核查,前台工作人员操作流程遵守酒店住宿业相关标准流程和规定,不存在违规制作房未来互联网属于腾讯还是阿里巴巴作者邱栋未来的竞争是平台的竞争,而不是企业。商业模式革新2019年3月,腾讯发布了产业互联网构建智能时代数字生态新图景报告,这是继腾讯没有梦想一文后,首次让世人看见,腾讯除了让人玩阿里女员工自曝被侵害事件,阿里到底错在哪里?阿里女员工自曝被侵害这个事件,已经过去这么久了,热度持续不下。有人认为阿里有点冤,有人认为阿里还远远不够。我从个人角度来盘点一下阿里的对与错。第一,阿里出这种事并不是特别意外。很多高通46亿美元截胡麦格纳,芯片零部件巨头为什么都盯上Veoneer撰文马晓蕾编辑钱亚光设计赵昊然此刻,上任不到半年的麦格纳CEO瓦埃米卡特吉利(SwamyKotagiri)大概眉头紧锁,他任职以来的第一次大手笔收购可能要泡汤了。7月22日,汽车代