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进行数据分析相关推荐

  1. 【Python有趣打卡】利用pandas完成数据分析项目(二)——爬微信好友+分析

    今天依然是跟着罗罗攀学习数据分析,原创:罗罗攀(公众号:luoluopan1) Python有趣|数据可视化那些事(二) 今天主要是学习pyecharts(http://pyecharts.org/# ...

  2. 对比Excel,利用pandas进行数据分析各种用法

    背景 懂编程语言最开始是属于程序猿的世界,现在随着国内人们受教育程度的提升.互联网科技的发展,业务人员也开始慢慢需要懂编程语言.从最近几年的招聘需求看,要求会Python则成为刚需. 业务人员之前使用 ...

  3. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主

    利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...

  4. 【赠书】pandas创始人手把手教你利用Python进行数据分析

    周末就要到了,本次给大家赠送5本Python技术书籍,这次赠送的书籍是<利用Python进行数据分析>. 这是一本什么样的书 Python是目前数据科学领域的王者语言,众多科学家.工程师. ...

  5. 数据基础---《利用Python进行数据分析·第2版》第12章 pandas高级应用

    之前自己对于numpy和pandas是要用的时候东学一点西一点,直到看到<利用Python进行数据分析·第2版>,觉得只看这一篇就够了.非常感谢原博主的翻译和分享. 前面的章节关注于不同类 ...

  6. 利用Python进行数据分析笔记-pandas建模(statsmodels篇)

    跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. statsmodels简介 statsmo ...

  7. Pandas基础-利用python进行数据分析

    Pandas入门 git地址:https://github.com/codebysandwich/DataScience/tree/master/pandas pandas是数据分析时主要的工具,经常 ...

  8. 利用Python进行数据分析笔记-pandas建模(Patsy篇)

    跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. import numpy as np im ...

  9. python数据分析pandas_利用Python进行数据分析笔记-pandas建模(Patsy篇)

    跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. import numpy as np im ...

  10. 数据分析入门活动赛事,利用Pandas分析美国选民总统喜爱

    本次赛事由开源学习组织Datawhale主办,主要带领学习者利用Python进行数据分析以及数据可视化,包含数据集的处理.数据探索与清晰.数据分析.数据可视化四部分,利用pandas.matplotl ...

最新文章

  1. GraphPad Prism多数据处理实用技巧
  2. uni-app组件之间的传值
  3. Linux 写时复制机制原理
  4. mysql 5.6自动任务_mysql定时执行某任务
  5. C#常用的文件操作 (转)
  6. MYSQL-统计查询
  7. access怎么查询工龄_电子商务专业怎么样?学什么?前景好吗?
  8. LUOGU P4281 [AHOI2008]紧急集合 / 聚会 (lca)
  9. java中的UDP总结
  10. 成都KTV点歌类小程序开发公司,微信小程序开发
  11. 移动APP开发环境搭建(新手)
  12. matlab 均匀设计编程,均匀设计均匀设计表--方开泰.doc
  13. VUE3-Cesium(entity、primitive总结及材质的修改)
  14. python连连看_Python 连连看连接算法
  15. 关于ASP木马提升权限
  16. C语言 数组中插入一个数
  17. 计算机无符号是啥,计算机编程中的无符号是什么
  18. 树莓派浏览网页,显示无法打开此网址
  19. TeamViewer固定密码远程连接
  20. TexturePacker 命令行方式调用参数

热门文章

  1. wx.previewImage图片加载不出来
  2. 转:德鲁克:放弃昨天,是变革的第一原则
  3. 多传感器数据融合简介(转)
  4. Java文字转语音功能实现
  5. R语言结构方程模型(SEM)在生态学领域中的实践应用
  6. 如何转行做数据分析师?
  7. Handling App Links
  8. pygame UI 框架
  9. 【2022牛客多校5 A题 Don‘t Starve】DP
  10. 艺多不压身—摩尔斯电码