软件测试|Pandas数据分析及可视化应用实践

简介: 软件测试|Pandas数据分析及可视化应用实践

Pandas是一个基于Numpy的数据分析库,它提供了多种数据统计和数据分析功能,使得数据分析人员在Python中进行数据处理变得方便快捷,接下来将使用Pandas对MovieLens 1M数据集进行相关的数据处理操作,运用具体例子更好地认识和学习Pandas在数据分析方面的独特魅力。

准备工作

首先使用Anaconda安装Jupyter Notebook,由于Jupyter支持单个文件上传,为了便于管理,可以通过upload先上传数据集的压缩包,然后通过zipfile解压数据集,解压后的数据集保存在data文件夹下,可以执行如下代码:

注:若upload无法上传数据压缩包,可以将数据压缩包放到Desktop,在Jupyter中找到Desktop文件夹,通过move移动到目标路径下。

导入Pandas,Numpy数据分析包,等待数据分析

数据读取与处理

1、Movielens数据集

MovieLens数据集是GroupLens Research收集电影评分数据集,包括100K,1M,10M等不同规模的数据集,本文选取MovieLens-1M数据集,该数据集包括6040名用户对3900部电影发布的1000209条评论数据。常用作推荐算法,数据统计数据集。

2、读取数据集

Pandas提供了多种方式来读取不同类型数据,本文使用read_csv来读取Movielens-1M各个子数据集,该方法将表格型数据读取为DataFrame对象,这是Pandas核心数据结构之一,另一个是Series。DataFrame表示的是矩阵的数据表,二维双索引数据结构,包括行索引和列索引。Series是一种一维数组型对象,仅包含一个值序列与一个索引。本文所涉及的数据结构主要是DataFrame。

函数描述|------

② 读取movies.dat数据集并输出前6条数据,此处自定义数据展示的条数。

movies.dat数据集movie_id:电影id,title:电影名称以及上映时间,genres:电影的题材。

③读取users.dat子数据集,user_id:用户id,gender:用户性别,age:用户所处的年龄段,并不是具体的年龄,occupation:用户职业,zip:邮编。

注意:若有的时候数据集列数过多,无法展示多列,出现省略号,此时可以使用pandas中的set_option()进行显示设置。

若输入的数据集较大,可能需要读入文件的一个小片段或者按照小块来遍历文件。若要读取一小部分行数据,可以指明nrows。若是分块去读数据文件,可以指明chunksize作为每一块的行数。

3、数据处理

上面展示的都是子数据的原始状态,但是在数据分析过程中,原始数据可能不满足数据分析的要求,这里做一些简单的处理。

① 去掉title中的年份

通过正则表达式去掉title中的年份

② 通过Pandas中的to_datetime函数将timestamp转换成具体时间

③ 通过rename函数更改列名,具体代码如下:

④ 将data_ratings中time列格式变成‘年-月-日’

首先使用Pandas中的to_datetime函数将date列从object格式转化为datetime格式,然后通过strftime('%Y%m%d')取出年月日,把这个函数用apply lambda应用到data_ratings[‘timestamp’]的这一列中。

4、数据合并

Pandas提供merge函数合并数据集,类似于sql中的join操作,分为可设为inner(默认内连接),outer(外连接),left(左连接),right(右连接)。将data_movies与data_ratings合并成data数据集。

上面是将两个子数据集合并,也可以多个子数据集合并,将data_movies,data_ratings与data_users一起合并成data1,可以使用两层merge函数合并数据集,也可以使用merge函数将data与data_users合并。

数据分析

1、统计变量

变量描述|------

2、分组统计

Pandas中使用groupby函数进行分组统计,groupby分组实际上就是将原有的DataFrame按照groupby的字段进行划分,groupby之后可以添加计数(count)、求和(sum)、求均值(mean)等操作。

① 统计评分最多的5部电影

首先根据电影名称进行分组,然后使用size函数计算每组样本的个数,最后采用降序的方式输出前5条观测值。

② 根据用户id统计电影评分的均值

3、分组聚合统计

Pandas提供aggregate函数实现聚合操作,可简写为agg,可以与groupby一起使用,作用是将分组后的对象使给定的计算方法重新取值,支持按照字段分别给定不同的统计方法。

按照movie_id和title进行分组,并计算评分均值,取前5个数据。

4、使用数据透视表pivot_table获得根据性别分级的每部电影的平均电影评分

数据透视表pivot_table是一种类似groupby的操作方法,常见于EXCEL中,数据透视表按列输入数据,输出时,不断细分数据形成多个维度累计信息的二维数据表。

DataFrame.pivot_table(data, values=None, index=None, columns=None,
            aggfunc='mean', fill_value=None, margins=False,
            dropna=True, margins_name='All')

index : 行索引,必要参数

values :对目标数据进行筛选,默认是全部数据,可通过values参数设置我们想要展示的数据列。

columns :透视表的列索引,非必要参数,同index使用方式一样

aggfunc :对数据聚合时进行的函数操作,默认是求平均值,也可以sum、count等

margins :额外列,默认对行列求和

fill_value : 对于空值进行填充

dropna : 默认开启去重

结合Matplotlib进行可视化分析

Pandas不仅可以以表的形式分析数据,还可以结合Matplotlib API进行可视化分析,通过import matplotlib.pyplot as plt导入到程序中,注意,在jupyter notebook中需要添加一行%matplotlib notebook。

1、认识Matplotlib

① Matplotlib常见绘图函数:

② Matplotlib绘图步骤

首先定义x,y轴数值,然后绘制图形,设置图形属性,包括颜色,线条,坐标轴范围,线条标记,设置图形标题等,最后使用plt.show( )绘制图形。

2、使用pandas 结合matplotlib绘制数据分析图

① 不同题材的电影数量柱形图

首先根据电影题材进行,然后选取票房最好的15个系列进行统计画图。

② 一年内电影评分均值的走势情况

按照时间分组,然后进行评分均值聚合统计,接着将数据绘制成折线图,便于了解影评分数均值随时间的变化情况,最后将所绘制的图形可通过savefig保存。

③ 使用直方图表示评分分布情况

根据数据呈现的评分分布直方图可见,评分为4分的数量最多

总结

通过上面的例子,可以了解Pandas在数据处理方面具有非常好的特性,它所包含的数据结构和数据处理工具使得数据清洗、数据分析十分快捷,支持大部分Numpy语言风格的数组计算,提供分组聚合统计函数,可以与可视化工具Matplotlib一起使用。

相关文章
|
23天前
|
搜索推荐 测试技术 API
探秘电商API:从测试到应用的深度解析与实战指南
电商API是电子商务背后的隐形引擎,支撑着从商品搜索、购物车更新到支付处理等各个环节的顺畅运行。它通过定义良好的接口,实现不同系统间的数据交互与功能集成,确保订单、库存和物流等信息的实时同步。RESTful、GraphQL和WebSocket等类型的API各自适用于不同的应用场景,满足多样化的需求。在测试方面,使用Postman、SoapUI和jMeter等工具进行全面的功能、性能和安全测试,确保API的稳定性和可靠性。未来,随着人工智能、大数据和物联网技术的发展,电商API将进一步智能化和标准化,为用户提供更个性化的购物体验,并推动电商行业的持续创新与进步。
55 4
|
1月前
|
存储 数据采集 数据可视化
Pandas数据应用:医疗数据分析
Pandas是Python中强大的数据操作和分析库,广泛应用于医疗数据分析。本文介绍了使用Pandas进行医疗数据分析的常见问题及解决方案,涵盖数据导入、预处理、清洗、转换、可视化等方面。通过解决文件路径错误、编码不匹配、缺失值处理、异常值识别、分类变量编码等问题,结合Matplotlib等工具实现数据可视化,并提供了解决常见报错的方法。掌握这些技巧可以提高医疗数据分析的效率和准确性。
81 22
|
2月前
|
存储 数据采集 数据可视化
Pandas数据应用:电子商务数据分析
本文介绍如何使用 Pandas 进行电子商务数据分析,涵盖数据加载、清洗、预处理、分析与可视化。通过 `read_csv` 等函数加载数据,利用 `info()` 和 `describe()` 探索数据结构和统计信息。针对常见问题如缺失值、重复记录、异常值等,提供解决方案,如 `dropna()`、`drop_duplicates()` 和正则表达式处理。结合 Matplotlib 等库实现数据可视化,探讨内存不足和性能瓶颈的应对方法,并总结常见报错及解决策略,帮助提升电商企业的数据分析能力。
154 73
|
2月前
|
数据采集 数据可视化 数据挖掘
Pandas数据应用:天气数据分析
本文介绍如何使用 Pandas 进行天气数据分析。Pandas 是一个强大的 Python 数据处理库,适合处理表格型数据。文章涵盖加载天气数据、处理缺失值、转换数据类型、时间序列分析(如滚动平均和重采样)等内容,并解决常见报错如 SettingWithCopyWarning、KeyError 和 TypeError。通过这些方法,帮助用户更好地进行气候趋势预测和决策。
137 71
|
2月前
|
数据采集 数据可视化 索引
Pandas数据应用:股票数据分析
本文介绍了如何使用Pandas库进行股票数据分析。首先,通过pip安装并导入Pandas库。接着,从本地CSV文件读取股票数据,并解决常见的解析错误。然后,利用head()、info()等函数查看数据基本信息,进行数据清洗,处理缺失值和重复数据。再者,结合Matplotlib和Seaborn进行数据可视化,绘制收盘价折线图。最后,进行时间序列分析,设置日期索引、重采样和计算移动平均线。通过这些步骤,帮助读者掌握Pandas在股票数据分析中的应用。
93 5
|
2月前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
548 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
2月前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
2月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
3月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
99 1
|
3月前
|
Java 测试技术 API
软件测试中的自动化测试框架选择与应用##
在快速迭代的软件开发周期中,选择合适的自动化测试框架对于提高软件质量和开发效率至关重要。本文探讨了当前流行的几种自动化测试框架的特点和适用场景,旨在为软件开发团队提供决策依据。 ##