利用pandas进行数据分析
1.系统环境:
Windows10: 20H2
MySQL:8.0.23
3.项目背景
(1)
如今的处在一个数据爆炸性增长的大数据时代,自阿里提出“数据赋能”以来,越来越多的电商企业和运营开始关注数据的应用。日常业务产生的海量数据蕴含着巨大的价值,如何在现在竞争激烈的环境中生存下来,其中最重要的一个因素就是数据化运营。
在这样的背景下,我将基于pandas进行数据分析,探索用户行为规律,从而提供有价值的信息。
(2)
也称皮尔森积矩相关系数,一般用于分析,两个连续变量之间的关系,是一种线性相关系数,公式为:
补充:
|r|<= 0.3 不存在线性相关
0.3<=|r|<= 0.5 低度线性关系
0.5<=|r|<= 0.8 显著线性关系
|r| > 0.8 高度当业务指标繁杂,叙述笼统,给报告制作,分析解读带来巨大的成本的时候。根据相关系数删减指标是方法之一,一般来说相关性大于0.8的时候可以选择其一。
在建立多元回归模型前,需要解决把那些数据放入模型作为自变量。最常规的方式就是先计算所有字段与因变量的相关系数,把相关系数较高的放入模型。然后计算自变量间的相关系数。若自变量间的相关系数高,说明存在多重共线性,需要进行删减。
决策层或者管理层经常会根据自己的经验,主观地形成一些逻辑关系。最典型的表述方式就是“我认为这个数据会影响到那个数据”。到底有没有影响?可以通过计算相关系数来判断。相关系数的应用能够让决策者更冷静,更少地盲目拍脑袋。虽然相关系数不能表达因果关系,但有联系的两件事情,一定会在相关系数上有所反映。
3.用户行为日志avocado.csv,日志中的字段定义如下:
Date | 日期
AveragePrice | 平均价格
Total Volume | 总交易量
4046 | 售出 PLU 4046 的鳄梨总数
4225 | 售出 PLU 4225 的鳄梨总数
4770 | 售出 PLU 4770 的鳄梨总数
Total Bags |总袋数
Small Bags | 小包
Large Bags | 大包
XLarge Bags | 特大包
Type | 是否有机
Year | 哪一年
Region | 地区
4.明确问题
本文将对牛油果售出数据,进行数据分析,尝试分析出有价值的信息。
5.数据来源
数据来自Kaggle社区
网址:https://www.kaggle.com/neuromusic/avocado-prices
6.数据分析
首先导入数据,并查看数据的统计信息:
import pandas as pd
df = pd.read_csv("D:/迅雷下载/archive/avocado.csv")
pd.set_option('display.max_columns', None)
df['AveragePrice'].mean()
df['AveragePrice'].median()
df['AveragePrice'].mode()
df.describe().round(2).T
然后探究一下各产地总和:
df["region"].value_counts() #产地总和
发现数据很均匀,然后探究一下各地的平均价格:
df[['AveragePrice','region']].groupby(by='region').mean().sort_values('AveragePrice',ascending=False) #各地的平均价格的降序排列
发现最贵的哈特福德与最便宜的休斯顿价格差距很大,这里我们猜想,抛开地理原因,是不是因为有机的更贵导致两地价格差距很大?
df[['AveragePrice','type']].groupby(by='type').mean().sort_values('AveragePrice',ascending=False) #有机和普通的平均价格
查看有机和普通的平均价格,发现确实有一定差距,再查看两地有机和普通的平均价格:
df.loc[df['region'] == 'HartfordSpringfield'].groupby(by="type").mean()
df.loc[df['region'] == 'Houston'].groupby(by="type").mean()
发现两地有机和普通价格差距都很大,再查看有机和普通的数量:
df.loc[df['region'] == 'HartfordSpringfield']['type'].value_counts()
df.loc[df['region'] == 'Houston']['type'].value_counts()
发现数量相同,由此可得数据应该是经过处理,结合前面的两地平均价格,发现哈特福德牛油果贵不是因为他们消耗了更多贵的有机牛油果,抛开地理原因,我们再次猜想,休斯顿牛油果便宜是因为他们吃的更多,查看两地消耗牛油果数量:
sum(df.loc[df['region'] == 'HartfordSpringfield']['Total Bags'])
sum(df.loc[df['region'] == 'Houston']['Total Bags'])
发现休斯顿消耗的牛油果数量是哈特福德的五倍左右,猜想初步成立,根据字段Small Bags、Large Bags的提示再次猜想,休斯顿牛油果便宜是因为他们一次性买更多牛油果,查看数据:
sum(df.loc[df['region'] == 'HartfordSpringfield']['Small Bags'])
sum(df.loc[df['region'] == 'Houston']['Small Bags'])
发现哈特福德牛油果小包购买率达95.11%,而休斯顿的牛油果小包购买率64.77%,好像相关,计算皮尔逊相关系数:
import numpy as np
u1,u2 = df['AveragePrice'].mean(),(df['Small Bags']/df['Total Bags']).mean() # 计算均值
df['(x-u1)*(y-u2)'] = (df['AveragePrice'] - u1) * ((df['Small Bags']/df['Total Bags']) - u2)
df['(x-u1)**2'] = (df['AveragePrice'] - u1)**2
df['(y-u2)**2'] = ((df['Small Bags']/df['Total Bags']) - u2)**2
r = df['(x-u1)*(y-u2)'].sum() / (np.sqrt(df['(x-u1)**2'].sum() * df['(y-u2)**2'].sum()))
print('Pearson相关系数为:%.4f' % r)
发现两者相关系数为0.1168,虽然是正相关,但是因为相关系数小于0.3所以不是线性相关,猜想错误。
再次猜想,平均价格和年份有关系,查看数据:
df.loc[df['year'] == 2015]['AveragePrice'].mean()
df.loc[df['year'] == 2016]['AveragePrice'].mean()
df.loc[df['year'] == 2017]['AveragePrice'].mean()
df.loc[df['year'] == 2018]['AveragePrice'].mean()
发现牛油果的平均价格是先在2016年小幅降低,再在2017年大幅升高,最后回归到正常价格。
7.总结
在这次数据分析中,我用了pandas进行数据的筛选、数据的描述和数据的分组和聚合,利用了皮尔逊计算相关系数,简单地分析了数据,合理提出猜想,并验证猜想,得出结论,但缺点是没有将时间和变化联系起来,不能很好的动态反应价格随时间的变化。
在本次实训中学到的关于前端、web和日志的相关技术也没有很好的利用上,内容比较单薄,不够详实充分。
利用pandas进行数据分析相关推荐
- 【Python有趣打卡】利用pandas完成数据分析项目(二)——爬微信好友+分析
今天依然是跟着罗罗攀学习数据分析,原创:罗罗攀(公众号:luoluopan1) Python有趣|数据可视化那些事(二) 今天主要是学习pyecharts(http://pyecharts.org/# ...
- 对比Excel,利用pandas进行数据分析各种用法
背景 懂编程语言最开始是属于程序猿的世界,现在随着国内人们受教育程度的提升.互联网科技的发展,业务人员也开始慢慢需要懂编程语言.从最近几年的招聘需求看,要求会Python则成为刚需. 业务人员之前使用 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...
- 【赠书】pandas创始人手把手教你利用Python进行数据分析
周末就要到了,本次给大家赠送5本Python技术书籍,这次赠送的书籍是<利用Python进行数据分析>. 这是一本什么样的书 Python是目前数据科学领域的王者语言,众多科学家.工程师. ...
- 数据基础---《利用Python进行数据分析·第2版》第12章 pandas高级应用
之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 前面的章节关注于不同类 ...
- 利用Python进行数据分析笔记-pandas建模(statsmodels篇)
跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. statsmodels简介 statsmo ...
- Pandas基础-利用python进行数据分析
Pandas入门 git地址:https://github.com/codebysandwich/DataScience/tree/master/pandas pandas是数据分析时主要的工具,经常 ...
- 利用Python进行数据分析笔记-pandas建模(Patsy篇)
跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. import numpy as np im ...
- python数据分析pandas_利用Python进行数据分析笔记-pandas建模(Patsy篇)
跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. import numpy as np im ...
- 数据分析入门活动赛事,利用Pandas分析美国选民总统喜爱
本次赛事由开源学习组织Datawhale主办,主要带领学习者利用Python进行数据分析以及数据可视化,包含数据集的处理.数据探索与清晰.数据分析.数据可视化四部分,利用pandas.matplotl ...
最新文章
- GraphPad Prism多数据处理实用技巧
- uni-app组件之间的传值
- Linux 写时复制机制原理
- mysql 5.6自动任务_mysql定时执行某任务
- C#常用的文件操作 (转)
- MYSQL-统计查询
- access怎么查询工龄_电子商务专业怎么样?学什么?前景好吗?
- LUOGU P4281 [AHOI2008]紧急集合 / 聚会 (lca)
- java中的UDP总结
- 成都KTV点歌类小程序开发公司,微信小程序开发
- 移动APP开发环境搭建(新手)
- matlab 均匀设计编程,均匀设计均匀设计表--方开泰.doc
- VUE3-Cesium(entity、primitive总结及材质的修改)
- python连连看_Python 连连看连接算法
- 关于ASP木马提升权限
- C语言 数组中插入一个数
- 计算机无符号是啥,计算机编程中的无符号是什么
- 树莓派浏览网页,显示无法打开此网址
- TeamViewer固定密码远程连接
- TexturePacker 命令行方式调用参数