Python数据特征分析_02(相关系数,帕累托定律,周期性)

简介: 探索某个变量是否随着时间变化而呈现出某种周期性变化的趋势。时间尺度相对较长的周期性趋势有:年度周期性趋势,季节性周期性趋势,相对较短的有月度周期性趋势,周度周期性趋势,甚至更短的天,小时的周期性趋势。

一、周期性分析



探索某个变量是否随着时间变化而呈现出某种周期性变化的趋势。时间尺度相对较长的周期性趋势有:年度周期性趋势,季节性周期性趋势,相对较短的有月度周期性趋势,周度周期性趋势,甚至更短的天,小时的周期性趋势。


import pandas as pd
import matplotlib.pyplot as plt
df_normal=pd.read_excel("D:/S072003Python/05DataMineML/catering_sale.xls")#读入数据
plt.figure(figsize=(20,9))
plt.plot(df_normal["日期"],df_normal["销量"])
plt.xlabel("日期")
plt.ylabel("销量")
# 设置x轴刻度间隔
x_major_locator = plt.MultipleLocator(7)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
plt.title("销售趋势")
plt.xticks(rotation=30)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.show()  # 展示图片
# 不正常销售趋势分析 - 这里的异常数据其实是使用随机数伪造出来的
df_abnormal = pd.read_excel("D:/S072003Python/05DataMineML/catering_sale (2).xls")
plt.figure(figsize=(20, 9))
plt.xticks(rotation=30)
plt.plot(df_abnormal["日期"],df_abnormal["销量2"]-np.random.randint(1000))  #随机数 np.rand
plt.xlabel("日期")
plt.ylabel("销量2")
# 设置x轴刻度间隔
x_major_locator = plt.MultipleLocator(7)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
plt.title("不正常销量趋势")
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.show()  # 展示图片

b5617febbfa54b2db17420117fcd6ef7.png


二、贡献性分析



45dc254c7242436f871ec2d5b3658832.png

取出到2022年4月3号为止,每个人累计总销售业绩,并进行排序

dfsort=df['20220403']
dfsort2=dfsort.copy()
dfsort2.sort_values(ascending=False,inplace=True)
dfsort2

96911319fbaa44839b2207f781de3313.png

plt.figure(figsize=(20,10))
dfsort2.plot(kind='bar',color='g',alpha=0.6,width=0.7)
plt.ylabel('销售业绩')

dd3f753dd6e6454d93640ec4c43deef3.png

根据帕累托法则,我们需要找出贡献度80%的员工,那么这些员工就是努力工作的员工,当80%这条线越靠近右边,则说明努力的员工越多。如果线越靠近左边,则说明大部分员工的贡献度都很低,根据不同的情况,公司的人力资源管理就需要有不同的解决方法。

8d4f45bafae24d59826bc879f890d4dd.png

#计算出累计占比和超过80%的节点的索引位置
p=dfsort2.cumsum()/dfsort2.sum()
key=p[p>0.8].index[0]
key_num=dfsort2.index.tolist().index(key)
key_num
e6a124893aa74633bca0c1bd7700f760.png

绘图:

plt.figure(figsize=(20,10))
dfsort2.plot(kind='bar',color='g',alpha=0.6,width=0.7)
plt.ylabel('时长_分钟')
p.plot(style='--ko',secondary_y=True)
plt.axvline(key_num,color='r',linestyle='--')
# plt.text(key_num+0.5,p[key],'累计占比为:%.3f%%' % (p[key]*100),color='r')
plt.annotate(format(p[key_num],'.2%'),xy=(key_num,p[key_num]),xytext=(22,p[key_num]*0.9),arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=0.5"))
# dfsort2.plot(kind='bar',color='g',alpha=0.6,width=0.7)
plt.ylabel('时长_占比')

ff430379b0b84040938fbde98a535f1c.png


三、相关性分析



1、探究不同菜品之间的相关性


还是拿餐饮的菜品,来分析不同菜品之间是否存在相关性。

f21464d7d8f54dc8b74cb9faf4157044.png

a=catdf.corr()
b=catdf.corr()['生炒菜心']
b

就类似于推荐系统,通过相关性分析,可以为用户继续推荐(想到了淘宝的猜你喜欢(≧∇≦)ノ)

f9e65eba3abd42bcbcee80e669d244c1.png


2、探究不同学生之间的相关性


选取十名同学的学习时长,看看同学直接是否有影响。

4531a33697074482ac0174e6027ceb3a.png

#数据集太大会导致耗时过长,调整切片
pd.plotting.scatter_matrix(dfddiffT.iloc[:,1:10],figsize=(12,12),
                          c='k',
                          marker='+',
                          diagonal='hist',
                          alpha=0.8,
                          range_padding=0.1)
e219168c62f9429987cd7f1929ebb5ad.png


相关文章
|
12天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
4天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
30 7
|
3天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
13 3
|
4天前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
13 2
|
9天前
|
数据采集 机器学习/深度学习 搜索推荐
Python自动化:关键词密度分析与搜索引擎优化
Python自动化:关键词密度分析与搜索引擎优化
|
11天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
28 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
20天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
40 2
|
20天前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第10天】本文介绍了OAuth 2.0和JSON Web Tokens (JWT) 两种现代Web应用中最流行的认证机制。通过使用Flask-OAuthlib和PyJWT库,详细展示了如何在Python环境中实现这两种认证方式,从而提升系统的安全性和开发效率。OAuth 2.0适用于授权过程,JWT则简化了认证流程,确保每次请求的安全性。结合两者,可以构建出既安全又高效的认证体系。
37 1
|
机器学习/深度学习 算法 数据挖掘
Python特征选择(全)
机器学习中,特征选择是一个重要步骤,用以筛选出显著特征、摒弃非显著特征。
|
11天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。