数据分析师的学习之路-pandas篇(7)

继续接上篇,这次学习下透视表、线性回归还有根据条件上颜色。

3.9 透视表

在excel里也经常用到透视表来构建想要的列的组合来形成一个新的表,在pandas里也能做。
举例数据是这样的:
在这里插入图片描述
是各种类产品的订单数据,现在想做一个透视表,看看各种类(Category)在每年的销售额数据。
先导入库和读入文件:

import pandas as pd
#因为一会儿销售额会求和,所以要导入这个库
import numpy as np
#读进来
orders = pd.read_excel("C:/tmp/1.xlsx")

要按年来看,而此时Date的格式是个datetime格式,我们只要获取年:

orders['Year'] = pd.DatetimeIndex(orders['Date']).year

然后就可以生成透视表了,也有专门的函数调用,最后的参数可以传入一个方法来计算values

pt1 = orders.pivot_table(index='Catgory', columns='Year', values='Total', aggfunc=np.sum)

这样结果就是:
在这里插入图片描述
得到了一个表,每行是一个种类的销售额,每列就是不同年份。

3.10 线性回归

线性回归原理会有单独的学习,这里是用pandas直接跑出来线性回归方程并画图。
假设有这样的数据,是每月的营业额:
在这里插入图片描述
先导入库和文件

import pandas as pd
import matplotlib.pyplot as plt
#也导入计算线性回归的库
from scipy.stas import linregress
#读文件,由于month列格式有点像float会被判断错格式,所以要设置下该列是string类型
sales = pd.read_excel("C:/tmp/1.xlsx", dtype={'Month':str})

求线性回归方程,得到的结果slope是斜率,intercept是截距,std_err是标准差,r和p先不用,也就是通过这个函数直接得到:

slope, intercept, r, p, std_err = linregress(sales.index, sales.Revenue)

得到了参数,那么线性回归方程就出来了,正常就是 y=kx+c, 这里k就是slope, c就是intercept,x就是index,y就是销售额

#得到所有的exp的结果
exp=sale.index * slope + intercept

然后画个图,一般用散点图看起来明显,然后把线性回归的那条线画出来,一目了然。

#散点图
plt.scatter(sales.index, sales.Revenue)
#画个线,用橙色明显一点
plt.plot(sales.index, exp, color='orange')
#加个标题, 标题就用这个线性回归方程当标题吧
plt.title(f"y={slope}*x + {intercept}")
#x轴显示标签名并转90度
plt.xticks(sales.index, sales.Month, rotation=90)
#画出来
plt.tight_layout()
plt.show()

最后画出来就长这样:
在这里插入图片描述
有了这个方程,就可以预测未来的销售额了。

3.11 上点颜色

有时候表数据一堆很难一目了然知道数据的情况,当给一些不同条件弄上不同颜色,就清楚多了,例如这样一组数据,是学生3次考试的成绩:
在这里插入图片描述
我们想一目了然的了解成绩情况,可以把不及格的标成红色,每次成绩最高的标成绿色。
先导入库和读入文件:

import pandas as pd
students = pd.read_excel("C:/tmp/1.xlsx")

为了实现标红色和绿色,分别定义一个函数:

#把不及格的标红色
def low_score_red(s):color = "red" if s<60 else "black"return f"color:{color}"
#把每列最高分标绿色
def highest_score_green(col):return ['background-color:lime' if s==col.max() else 'background-color.white' for s in col]

然后呢用dataframe的applymap方法传入筛选函数

#不及格标红
students.style.applymap(low_score_red, subset=['Test_1', 'Test_2', 'Test_3'])

然后也要把每列最高分标绿,其实可以和上面这句合并,加到后面,所以上面这句就改成:

students.style.applymap(low_score_red, subset=['Test_1', 'Test_2', 'Test_3'])\.apply(highest_score_green, subset=['Test_1', 'Test_2', 'Test_3'])

这里第一个用的applymap,是因为要对所有单元格操作,而后面用apply是只针对某一列来操作。
然后打印student一看,结果就对了:
在这里插入图片描述


现在想用一种颜色的深浅来表达数值的高低,分数越高就越深,怎么弄呢:

import pandas as pd
#要在前面多导入一个库来画颜色
import seaborn as sns
#然后相当于生成一个调色板
color_map = sns.light_palette('green', as_cmap = True)
#读入文件
students = pd_read_excel("C:/tmp/1.xlsx", index_col='ID')
#画
students.style.background_gradient(color_map, subset=['Test_1', 'Test_2', 'Test_3'])

最终students的结果就是这样:
在这里插入图片描述


如果想用一个柱状颜色条来表示成绩的高低,越长成绩越高,怎么弄呢:

import pandas as pd
#这个情况,就不用seaborn库了
#读入文件
students = pd_read_excel("C:/tmp/1.xlsx", index_col='ID')
#直接画
students.style.bar(color='orange', subset=['Test_1', 'Test_2', 'Test_3'])

最总students的效果是这样:
在这里插入图片描述


今天先学到这,下一篇总结一下,把所有的行和列的常用操作都整理一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

electron 应用图标修改

修改窗口图标 更换Electron应用程序的桌面图标 准备好你想要作为图标的图片文件&#xff0c;可以是PNG格式安装一个可以转换图片格式为ICO的工具&#xff0c;例如在线转换工具“在线转换icon图标工具”。将你的PNG图片文件上传并转换为ICO格式将转换得到的ICO文件放到你的El…

synxflow 安装环境

介绍&#xff1a; 该软件可以动态模拟洪水淹没&#xff0c;滑坡跳动和泥石流使用多个cuda支持的gpu。它还提供了一个用户友好但多功能的Python界面&#xff0c;可以完全集成到数据科学工作流程中&#xff0c;旨在简化和加速危害风险评估任务。 这个包我从网上找到的资源特别特…

GAN:WGAN-DIV

论文&#xff1a;https://arxiv.org/pdf/1712.01026.pdf 代码&#xff1a; 发表&#xff1a;2018 摘要 在计算机视觉的许多领域中&#xff0c;生成对抗性网络已经取得了巨大的成功&#xff0c;其中WGANs系列被认为是最先进的&#xff0c;主要是由于其理论贡献和竞争的定性表…

11、信息打点——红队工具篇FofaQuakeSuize水泽Arl灯塔

网络空间测绘引擎 Fofa Quake shodan Zoomeye 主要搜关联资产、特征资产、资产信息&#xff08;在测绘引擎上直接搜IP&#xff0c;它会显示所有与该域名有关的信息。&#xff09; fofa和Quake测绘引擎集成化工具&#xff1a;Finger 自动化信息收集项目 ARL灯塔 Suize水泽 …

洗地机好用吗?口碑好的洗地机有哪些?

自从洗地机开始引入市场以来&#xff0c;它一直受到人们的关注。它在解放家庭清洁劳动力和提供快速方便的清洁方面表现出色&#xff0c;超越了多年来传统的拖把清洁方式。越来越多的人选择使用洗地机来完成家庭清洁任务。如果你也对洗地机产生了浓厚的兴趣&#xff0c;并想购买…

在 AlmaLinux 9.2 上安装Oracle Database 23c

在 AlmaLinux 9.2 上安装Oracle Database 23c 1. 安装 Oracle Database 23c2. 连接 Oracle Database 23c3. 重启启动后&#xff0c;手动启动数据库4. 重启启动后&#xff0c;手动启动 Listener5. 手动启动 Pluggable Database6. 自动启动 Pluggable Database7. 设置开机启动数据…

【面试】Java最新面试题资深开发-JVM第一弹

问题一&#xff1a;Java中的垃圾回收机制 在Java中&#xff0c;垃圾回收是如何工作的&#xff0c;可以简要描述一下垃圾回收的算法有哪些吗&#xff1f; 在Java中&#xff0c;垃圾回收是一种自动管理内存的机制&#xff0c;它负责识别不再被程序引用的对象并释放其占用的内存…

Linux(11):Linux 账号管理与 ACL 权限设定

Linux 的账号与群组 每个登入的使用者至少都会取得两个 ID&#xff0c;一个是使用者 ID(User ID &#xff0c;简称UID)、一个是群组ID (Group ID &#xff0c;简称GID)。 Linux系统上面的用户如果需要登入主机以取得 shell 的环境来工作时&#xff0c;他需要如何进行呢? 首先…

测绘资质测绘设备检定、校准管理制度

测绘设备检定、校准管理制度 建立健全测绘仪器设备检定、校准管理制度&#xff0c;明确测绘仪器设备的检定、校准、日常管理等要求

Unity环境配置并解决visual studio 不能智能代码提示Unity代码问题(一)

1、请先安装好unity和Visual Studio 2019 2、Visual Studio需要安装如图&#xff08;2019才会有那个移动的可以勾选&#xff09; 3、Unity配置 file->build setting windows->package manager 安装如下图 edit->preferences 3、创建c#脚本 如果还是没能智能提…

Centos7上安装Redis

第一步&#xff1a;安装Redis依赖 yum install -y gcc tcl //需要使用管理员权限第二步&#xff1a;下载上传安装包并解压 下载地址redis中文官网 上传成功后解压 输入tar -zxvf &#xff08;redis版本&#xff09;,即可解压成功 进入redis目录&#xff0c;运行编译命令&am…

安全AI系统开发指南

执行摘要 本文件建议为使用人工智能&#xff08;AI&#xff09;的任何系统的提供商提供指导方针&#xff0c;无论这些系统是从头开始创建的&#xff0c;还是建立在他人提供的工具和服务之上的。实施这些指导方针将有助于提供商构建按预期运行、在需要时可用的人工智能系统&…

CTF特训日记day(4-6)

来复现一下2022QWB决赛的RDP题目 这两天腰疼去了趟医院 题目要求我们攻击XRDP程序&#xff0c;从而达到本地提权的效果。 首先观察XRDP程序的版本信息 rootRDP:/home/rdp/Desktop# xrdp-sesman -version xrdp-sesman 0.9.18The xrdp session managerCopyright (C) 2004-2020…

【eNSP实践】eNSP实战篇(2)之简单实现交换机与主机的配置(图文详解)

目录 写在前面涉及知识1、交换机实验1.1 实验条件1.2 实验步骤A、打开eNSP软件&#xff0c;创建拓扑B、搭建主机与交换机连线C、配置交换机和主机D、验证不同网段设备可通性 1.3 通过交换机查看MAC地址 写在最后 写在前面 其实前面文章我有介绍关于路由器的使用&#xff0c;但…

Java多线程技术二:线程间通信——wait/notify机制

1 概述 线程时操作系统中独立的个体&#xff0c;但这些个体如果不经过特殊的处理是不能成为一个整体的。线程间的通信就是使线程成为整体的比用方案之一&#xff0c;可以说&#xff0c;是线程间进行通信后系统之间的交互性会更强大&#xff0c;CPU利用率会得以大幅提高&#xf…

执法记录仪、一体化布控球等目前支持的AI智能算法、视频智能分析算法有哪些

一、前端设备实现AI算法 主要是基于安卓的布控球实现&#xff0c;已有的算法包括&#xff1a; 1&#xff09;人脸&#xff1b;2&#xff09;车牌&#xff1b;3&#xff09;是否佩戴安全帽&#xff1b;4&#xff09;是否穿着工装&#xff1b; 可以支持定制开发 烟雾&#xf…

使用晶振遇到的两个问题

并联电阻的问题 在一些方案中&#xff0c;晶振并联1MΩ电阻时&#xff0c;程序运行正常&#xff0c;而在没有1MΩ电阻的情况下&#xff0c;程序运行有滞后及无法运行现象发生。 原因分析&#xff1a; 在无源晶振应用方案中&#xff0c;两个外接电容能够微调晶振产生的时钟频率…

开放式蓝牙耳机什么品牌好?南卡、韶音、cleer开放式耳机哪个好?

开放式耳机采用不入耳的设计&#xff0c;提供更为舒适的佩戴体验&#xff0c;不会给耳朵带来持续的压力和损害&#xff0c;减轻身体负担。同时&#xff0c;由于无需将耳机插入耳朵内&#xff0c;减少了细菌滋生的可能性&#xff0c;避免了一些耳道健康问题。这些优点也是开放式…

P5 Linux 标准C库函数

目录 前言 01 标准输入、标准输出和标准错误 02 打开文件 fopen() 03 新建文件的权限 04 fclose()关闭文件 05 读文件和写文件 06 库函数 fseek 定位 6.1 lseek的使用 07 ftell()函数 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_Chen…

Dinky之安装部署与基本使用

Dinky之安装部署与基本使用 Dinky概览Linux安装部署解压到指定目录初始化MySQL数据库修改配置文件加载依赖启动Dinky Docker部署启动dinky-mysql-server镜像启动dinky-standalone-server镜像 Dinky的基本使用上传jar包Flink配置集群管理集群实例管理集群配置管理 创建作业语句编…