使用 df.describe 等函数进行 探索 当然是常见 *** 作,但若要进行更完整、详细的分析缺则略显不足。
本文就将分享两个用于数据 探索 的 pandas 插件。
首先要介绍的是 pandas_profiling ,它扩展了 pandas DataFrame 的功能,这也是在之前多篇文章中提到的插件。
只需使用 pip install pandas_profiling 即可安装,在导入数据之后使用 df.profile_report 一行命令即可快速生成描述性分析报告
可以看到,除了之前我们需要的一些描述性统计数据,该报告还包含以下信息:
进一步我们还以将该报告保存为 html 格式,方便后续的查看,感兴趣的读者可以自行尝试。
第二个值得一用的是 sweetviz ,同样是一个开源 Python 库,可生成美观、高密度的可视化,只需两行代码即可启动 EDA 。
该插件围绕快速可视化目标值和比较数据集而构建。它的目标是帮助快速分析目标特征、训练与测试数据以及其他此类数据特征任务。
安装方法同上,执行 pip install sweetviz 即可。使用方法也是类似,导入数据后只需两行代码即可输出分析报告
和 pandas_profiling 不一样的是,现在我们只能得到一个 html 文件,打开即可看到相关 EDA 报告
可以看到,自动生成的报告主要有以下几个部分
从上面的介绍我们也能看出,两个 EDA 的插件侧重点有所不同,我们在实际使用时也应该根据数据特征与分析目标灵活使用!
大数据测试,说来进入这块领域也快2年半了。每天工作的内容是验证数据表的逻辑正确性。
最近偶有所思,数据测试能否更进一步?如何利用已有技能对海量数据进行全面分析,找出数据质量问题或协助数据分析师发现逻辑漏洞?
再或者,能否向数据分析师转型呢?想得很多,思绪有些杂乱。于是我冷静了下,不再空想。我先做点东西出来看看,再评估下自己是否有这个能力和资质。
花了1个星期的时间,学习了 Python 的 Pandas 模块,按照学习示例一边学习一边实 *** ,慢慢地感觉就来了。对 Pandas 有了基本的认知后,我在寻找一个突破点,我想我不能一直只是这样按照示例代码敲下去,毫无意义。
我得将所学的 Pandas 知识结合公司现有的业务进行运用。刚开始至少能简单地开始对某张数据表的某个指标进行数据分析。于是我按照这样的想法对 test. test_resv001_room_daily_df 表的 number_of_room_nights 指标开始了数据分析的 探索 。
1、hivesql数据准备
hivesql内容说明:
从上面的 hivesql 语句可以看出,这条 sql 的目的是查询出 hotel_code_new 为 'CNSZV002','CWH','CWSW','ESL','FIJ' 在2019年各个月份的 number_of_room_nights 指标总和,按照 hotel_code_new 和月份作分组和排序。
2、代码实现
3、hive数据库all_data的数据结构查询结果
4、代码实现2中的print(df)输出结果
手工校对通过,与 hivesql 输出结果一致。
5、将dataframe数据结构的df数据使用plot生成趋势图
调用df.plot()不带任何参数的趋势图如下:
上述折线图表示:当前月份值及 历史 月份值的累加和。
调用df.plot(kind='bar')时加上参数kind='bar'的趋势图如下:
上述柱状图表示:当前月份值及 历史 月份值的累加和。
两个图只是展示形式上的区别,都能在一定程度上体现2019年12个月份每个不同 hotel_code_new 当前月份与 历史 月份 number_of_room_nights 值的累加和的数据分布情况,可以说是一个简单的数据分析。
6、将dataframe数据写入csv文件
room_nts.csv内容如下:
7、读取csv文件中dataframe数据
8、将dataframe多维数据存储到excel中
room_nts.xlsx文件中sheet_name为room_nts的内容如下:
9、从excel中读取dataframe多维数据
小结
今天分享的数据分析内容比较基础,主要是将学到的技能与业务相结合的初步 探索 ,后续还需要不断 探索 与学习,将学习到的技能加以思考并运用到实际项目业务中,如此方能走得更远。
【导语】Pandas库的名字来源于3种主要数据结构开头字母的缩写:Panel,Dataframe,Series。其中Series表示一维数据,Dataframe表示二维数据,Panel表示三维数据。当数据高于二维时,一般却不用 Panel 表示,为什么呢?如果不用 Panel,又该怎么做呢?
实际上,当数据高于二维时,我们一般用包含多层级索引的Dataframe进行表示,而不是使用Panel。原因是使用多层级索引展示数据更加直观, *** 作数据更加灵活,并且可以表示3维,4维乃至任意维度的数据。具体要怎么做呢?下面就从多层级索引的创建、取值与排序等内容教大家一些方法!
直接使⽤index参数创建 在使⽤index参数时,index的值是⼀个列表,其中的元素是多个列表,每个列表就是⼀层索 引,举个栗⼦:
我们来看⼀下输出结果:第⼀列的a、b、c是第⼀层的索引,第⼆层的期中、期末是 第⼆层的索引,第三列的就是对应的数据。
上面建索引的⽅式写起来很麻烦,我们要写很多重复的内容,所以pandas给我们提供了另⼀ 种⽅式(MultiIndex.from_product() )来构建多层索引
使⽤MultiIndex.from_product()方法构建,⾸先我们把每层需要的索引写⼊到⼀个列表中,将这些列表在存⼊到⼀个新的列表当中,作为 参数传⼊MultiIndex.from_product()方法中,把结果赋值给变量index,那么这个index就 是我们构造好的索引,我们只需要在创建Series的时候传入索引即可
结果:69
多层索引的应用场景一般是在数据量比较大,字段比较多,逻辑相对复杂的情况下,用来汇总数据,查找数据时使用。
希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)