python综合实战案例-数据分析

Python是进行数据分析的好工具,今天就是借助一个案例给大家进行数据分析讲解。
本例设计一个log.txt⽂件,该文件记录了某个项⽬中某个 api 的调⽤情况,采样时间为每分钟⼀次,包括调⽤次数、响应时间等信息,⼤约18万条数据。下⾯进⾏探索性数据分析。
在这里插入图片描述

一、分析api调用次数

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font', **{'family':'SimHei'})
# 从log.txt导⼊数据
data = pd.read_table('log.txt', header=None,names=['id', 'api', 'count', 'res_time_sum', 'res_time_min','res_time_max', 'res_time_avg', 'interval', 'created_at'])


# 检查是否有重复值
print( data.duplicated().sum()  )   # 0

# 检查是否有空值
print( data.isnull().sum()  )
# 分析 api 和 interval 这两列的数据是否对分析有⽤
print( len(data)  ) # 得到 179496
print( len(data[data['interval'] == 60])  ) # 得到 179496
print( len(data[data['api'] == '/front-api/bill/create'])  ) # 得到 179496

# 查看api字段信息,可以发现unique=1,也就是说只有⼀个值,所以是没有意义的
print( data['api'].describe() )
# 删除api⼀列
data = data.drop('api', axis=1)
# 还发现 interval 的值全是60
print( data.interval.unique() )   # [60]

# 把 id 字段都删掉
data = data.drop(['id'], axis=1)
# 发现数据中每⼀⾏的  interval 字段的值都⼀样,所以丢弃这列
data2 = data.drop(columns=['interval'])
print( data2.head() )

# 查看维度信息
print( data2.shape )   # (179496, 6)
# 查看字段类型
print( data2.dtypes )
print( data2.info() )
print( data2.describe() )
print( "------------------------------------------" )
# 查看时间字段,会发现count=unique=179496,说明没有重复值

data2['created_at'].describe()

# 选取 2018-05-01 的数据,但是没有显⽰
print( data2[data2.created_at == '2018-05-01'] )
# 这样就可以,但是这样选取毕竟挺⿇烦的
print( data2[(data2.created_at >= '2018-05-01') & (data2.created_at < '2018-05-01')] )
# 所以,将时间序列作为索引
data2.index = data2['created_at']
# 为了能 data['2018-05-01'] 这样选取数据,我们还要将时间序列由字符串转为时间索引
data2.index = pd.to_datetime(data2['created_at'])
# 有了时间索引,后⾯的操作就⽅便多了
print( data2['2018-05-01'] )
print( "------------------------------------------" )
print( "------------------------------------------" )


# 分析 api 调⽤次数情况
# 下⾯直⽅图表⽰单位时间调⽤api的次数,最⼤值为31,所以就分31组
data['count'].hist(bins=31, rwidth=0.8)
plt.show()

在这里插入图片描述

二、分析访问高峰时段

# 相同代码省略
print( "------------------------------------------" )
print( "------------------------------------------" )

# 分析 api 调⽤次数情况,例如,在2018-5-1这⼀天中,哪些时间是访问⾼峰,哪些时间段访问⽐较少
# 如下图所⽰,从凌晨2点到11点访问少,业务⾼峰出现在下午两三点,晚上⼋九点。
data2['2018-5-1']['count'].plot()
plt.show()

在这里插入图片描述

三、分析api相应时间1

# 相同代码省略
print( "------------------------------------------" )
print( "------------------------------------------" )

data2['2018-5-1'].describe()
# 分析⼀天中 api 响应时间
data2['2018-5-1']['res_time_avg'].plot()
plt.show()

在这里插入图片描述

四、分析api响应时间2

# 相同代码省略
print( "------------------------------------------" )
print( "------------------------------------------" )

data2['2018-5-1'][['res_time_avg']].boxplot()
plt.show()

在这里插入图片描述

五、分析api响应时间3

# 相同代码省略
print( "------------------------------------------" )
print( "------------------------------------------" )

data2['2018-5-1'][['res_time_avg']].boxplot()
plt.show()

在这里插入图片描述

六、分析api相应时间4

# 相同代码省略
print( "------------------------------------------" )
print( "------------------------------------------" )

# 以20分钟为单位重新采样,可以看到在业务⾼峰时间段,最⼤响应时间和平均响应时间都有所上升
# data2['2018-5-1'].resample('20T').mean()
#  data2[['res_time_avg','res_time_max','res_time_min','res_time_sum']].plot()
data2['2018-5-1'].resample('20T').mean()
data2[['res_time_avg','res_time_max','res_time_min']].plot()
plt.show()

在这里插入图片描述

七、分析连续几天数据

# 相同代码省略
print( "------------------------------------------" )
print( "------------------------------------------" )


# 分析连续的⼏天数据,可以发现,每天的业务⾼峰时段都⽐较相似
data2['2018-5-1':'2018-5-10']['count'].plot()
plt.show()

在这里插入图片描述

八、分析周末访问量增加情况

# 相同代码省略
print( "------------------------------------------" )
print( "------------------------------------------" )

# 分析周末访问量是否有增加
data2['weekday'] = data2.index.weekday
data2.head()
# weekday从0开始,5和6表⽰星期六和星期天
data2['weekend'] = data2['weekday'].isin({5,6})
data2.head()
data2.groupby('weekend')['count'].mean()
data2.head()
#data2.groupby(['weekend', data2.index.hour])['count'].mean().plot()
#plt.show()
data2.groupby(['weekend', data2.index.hour])['count'].mean().unstack(level=0).plot()
plt.show()

在这里插入图片描述

总结

根据上面的代码分析案例,进行数据分析,首先根据之前文章讲到的数据清洗,对数据进行导入、重复值检查、空值检测、数据精简处理……
通过对数据的分析、处理,我们可以清楚可视化观察到数据的变化走向,更好的通过数据分析得到结论。
python分析数据绘制图片注意的问题我们后续再讲,感谢!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java中的SSM框架实现快餐店线上点餐系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现快餐店线上点餐系统演示 摘要 随着计算机互联网的高速发展。餐饮业的发展也加入了电子商务团队。各种网上点餐系统纷纷涌现&#xff0c;不仅增加了商户的销售量和营业额&#xff0c;而且为买家提供了极大的方便&#xff0c;足不出户&#xff0c;就能订…

备战蓝桥杯---牛客寒假算法基础集训6

1.并查集数学 分析&#xff1a; 首先我们知道算数基本定理&#xff0c;如果两个数有大于1的质因子&#xff0c;那么我们就需要把他们放在同一个集合&#xff0c;因此我们可以用欧拉刷出1e6范围内的素数&#xff0c;然后依次看输入的数。 拿202*2*5举例子&#xff0c;我们在求…

检索增强生成(RAG)技术:实现流程、作用及应用案例

一. RAG简介 在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;技术巧妙地结合了信息检索与神经网络生成模型的力量&#xff0c;通过在生成过程中引入相关的外部信息&#xff0c;实现了在…

【Vue3】组件通信以及各种方式的对比

方式一&#xff1a;props 「父」向「子」组件发送数据 父组件&#xff1a; 定义需要传递给子组件的数据&#xff0c;并使用 v-bind 指令将其绑定到子组件的 props 上。 <template><child-component :message"parentMessage" /> </template><sc…

6. ping在windows中的常见用法

&#xff08;1&#xff09;ping简介 1.ping简介 &#xff08;2&#xff09;在windows上用法 1.直接ping 对方IP&#xff08;无参数时&#xff09; 2.ping -t IP (长ping) 3.ping -n 包数量 4.ping -l 字节大小 IP 5.如何批量的ping一个网段&#xff1f; &#xff08;1&a…

24计算机考研调剂 | 【官方】山东工商学院

山东工商学院 考研调剂招生信息 招生专业&#xff1a; 学院概况&#xff1a; 计算机科学与技术学院始建于1999年&#xff0c;拥有计算机科学与技术一级学科硕士点,在2022软科中国最好学科排名中&#xff0c;计算机科学与技术学科位列全国第104位。在2022年“软科”中国大学专…

【MySQL】2.MySQL数据库的基本操作

目录 数据库基本操作 查看数据库信息 查看数据库结构 显示数据表的结构&#xff08;字段&#xff09; 常用的数据类型 数据库管理操作 SQL语句概述 SQL分类 1.DDL&#xff1a;数据定义语言 1.1创建数据库和表 创建数据库 创建数据表 1.2删除数据库和表 删除数据表…

音视频领域首个,阿里云推出华为鸿蒙 HarmonyOS NEXT 版音视频 SDK

近日&#xff0c;阿里云在官网音视频终端 SDK 栏目发布适配 HarmonyOS NEXT 的操作文档和 SDK&#xff0c;官宣 MediaBox 音视频终端 SDK 全面适配 HarmonyOS NEXT。 此外&#xff0c;阿里云播放器 SDK 也在华为开发者联盟官网鸿蒙生态伙伴 SDK 专区同步上线&#xff0c;面向所…

SpringCloud-记

目录 什么是SpringCloud 什么是微服务 SpringCloud的优缺点 SpringBoot和SpringCloud的区别 RPC 的实现原理 RPC是什么 eureka的自我保护机制 Ribbon feigin优点 Ribbon和Feign的区别 什么是SpringCloud Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发…

STM32之HAL开发——系统定时器(SysTick)

系统定时器&#xff08;SysTick&#xff09;介绍 SysTick—系统定时器是属于 CM3 内核中的一个外设&#xff0c;内嵌在 NVIC 中。系统定时器是一个 24bit的向下递减的计数器&#xff0c;计数器每计数一次的时间为 1/SYSCLK&#xff0c;一般我们设置系统时钟 SYSCLK等于 72M。当…

人工智能之Tensorflow变量作用域

在TensoFlow中有两个作用域&#xff08;Scope&#xff09;&#xff0c;一个时name_scope ,另一个是variable_scope。variable_scope主要给variable_name加前缀&#xff0c;也可以给op_name加前缀&#xff1b;name_scope给op_name加前缀。 variable_scope 通过所给的名字创建或…

【电路笔记】-场效应管(FET)电流源

场效应管(FET)电流源 文章目录 场效应管(FET)电流源1、概述2、偏置结 FET2.1 N沟道JFET偏置2.2 N沟道JFET输出特性3、JFET 作为恒流源4、JFET 零电压偏置5、JFET 负电压偏置6、FET 恒流源示例17、JFET电流源8、FET 恒流源示例29、FET 恒流源示例310、总结FET 恒流源使用 JFET 和…

Java学习笔记NO.26

T3.以面向对象的思想&#xff0c;编写自定义类描述IT从业者。 设定属性包括&#xff1a;姓名&#xff0c;年龄&#xff0c;技术方向&#xff0c;工作年限&#xff1b; 方法包括&#xff1a;工作。 要求&#xff1a; (1)设置属性的私有访问权限&#xff0c;通过公有的get,set…

业务服务:redisson

文章目录 前言一、配置1. 添加依赖2. 配置文件/类3. 注入redission3. 封装工具类 二、应用1. RedisUtils工具类的基本使用 三、队列1. 工具类2. 普通队列3. 有界队列&#xff08;限制数据量&#xff09;4. 延迟队列&#xff08;延迟获取数据&#xff09;5. 优先队列&#xff08…

Netty - 五种 I/O 多路复用机制 select、poll、epoll、kqueue、iocp(windows) 对比

文章目录 Preselect、poll、epoll、kqueue、iocp(windows) Pre 高性能网络编程 - select、 poll 、epoll 、libevent select、poll、epoll、kqueue、iocp(windows) 这里我将对比一下常见的多路复用技术&#xff1a;select、poll、epoll、kqueue 和 IOCP&#xff08;Windows&a…

分区表索引失效导致业务异常

业务无法正常进行&#xff0c;查看数据库后台进程&#xff0c;发现有大量阻塞 QL_ID WAIT_CLASS EVENT ------------- --------------- ------------------------- 1cpk7srb6cr0r User I/O db file scattered read 279knu21n06x6…

音视频开发之旅(78)- Docker使用和交互流程

目录 1.Docker是什么 2.DockerFile的使用 3.常用命令 4.Docker和Web服务的交互流程 5.资料 一、Docker是什么 Docker通过轻量级的容器化技术&#xff0c;使得应用程序及其依赖可以打包在一个可移植的容器中运行&#xff0c;确保应用在不同环境下的一致性和效率。 1.1 核心…

中断(NVIC)的使用--EXTI--TIM

目录 中断是什么 轮询 中断 中断调用情况 中断的分类 内部中断&#xff08;TIM、UART等&#xff09; tim.c tim.h 外部中断EXTI exti.c exti.h 中断是什么 在处理事件的时候有两种方式&#xff1a;轮询和中断。 轮询 顾名思义&#xff0c;就是每轮都询问一次。比如…

结构体类型详细讲解(附带枚举,联合)

前言&#xff1a; 如果你还对结构体不是很了解&#xff0c;那么本篇文章将会从 为什么存在结构体&#xff0c;结构体的优点&#xff0c;结构体的定义&#xff0c;结构体的使用与结构体的大小依次介绍&#xff0c;同样会附带枚举与联合体 目录 为什么存在结构体&#xff1a; 结构…

毕业设计:日志记录编写(3/17起更新中)

目录 3/171.配置阿里云python加速镜像&#xff1a;2. 安装python3.9版本3. 爬虫技术选择4. 数据抓取和整理5. 难点和挑战 3/241.数据库建表信息2.后续进度安排3. 数据处理和分析 3/17 当前周期目标&#xff1a;构建基本的python环境&#xff1a;运行爬虫程序 1.配置阿里云pytho…