【2024_CUMCM】数据预处理、数据分析、数据可视化

目录

2023-c题-问题1

问题分析 

偏度

峰度

箱线图 

读图

重采样、降采样、升采样

重采样

降采样

升采样

解题代码


2023-c题-问题1

问题分析 

问题说白了就是探究品类和销售量这两个数据他们各自内在联系,根据题意,我们先进行

据预处理,按照以往的步骤是针对缺失值、重复值、异常值。我认为这道题应该是探究特殊

,需要思考到情境下的特殊情况和特殊数据,再进行处理。然后就可以开始数据分析,通

过函数引入数量、均值、最值、百分位数、偏度、峰度等描述统计量,并通过数据可视化

如热力图、箱线图、折线图、条形图、直方图更清晰探究其关联关系。 

偏度

偏度(Skewness)是用来度量随机变量概率分布的不对称性的统计量。它可以帮助我们了解数据分布的倾斜方向和程度

当偏度 < 0 时,概率分布图左偏;当偏度 = 0 时,表示数据相对均匀地分布在平均值两侧,不一定是绝对的对称分布;当偏度 > 0 时,概率分布图右偏。

峰度

峰度(Kurtosis)是用来度量随机变量概率分布的陡峭程度的统计量。它可以帮助我们了解数据分布的尖峭或平坦程度。峰度的计算公式为:

峰度的取值范围为 [1, +∞)。完全服从正态分布的数据的峰度值为 3。峰度值越大,概率分布图越高尖;峰度值越小,越矮胖

箱线图 

是显示一组数据分散情况资料的统计图。

读图

 从图中可以看出,南山区的房价最高,南山区、宝安区、福田区等的异常值很多,说明这些地区大部分房价高于均值。

重采样、降采样、升采样

相关参数 

重采样

重采样是时间序列频率转换的过程,可以理解为调整数据的时间分辨率。在Python的Pandas库中,`resample`函数用于执行重采样操作。

重采样可以将高频数据聚合到低频率(降采样),也可以将低频数据转换为高频率(升采样)

降采样

降采样是指从大量数据中选择一部分代表性样本的过程。

降采样是将高频数据转换为低频数据的过程。在降采样时,需要考虑`closedlabel`参数,它们分别决定了时间区间的闭合端点和聚合值的标签位置。

例如,如果想要将每天的数据聚合为每月的数据,可以使用resample('M')方法,其中'M'代表月度频率。

升采样

升采样是指增加数据集中样本数量的过程。

升采样是将低频数据转换为高频数据的过程。在升采样中,主要是通过数据插值来填补缺失的值

例如,如果想要将每年的数据转换为每月的数据,可以使用resample('M')方法,并配合适当的插值方法(如ffill)来填充缺失的月份数据。

解题代码

# %%
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np# %%
category = pd.read_excel('2023年数学建模C\附件1.xlsx')# %%
data= pd.read_excel('2023年数学建模C\附件2.xlsx')# %%
category# %%
merge_data=pd.merge(data,category,how='left',on='单品编码')# %%
merge_data.info()
merge_data# %%
# 删除某列中的某个值
merge_data=merge_data[merge_data['销售类型']!='退货']# %%
merge_data.drop(['扫码销售时间'],axis=1,inplace=True)# %%
merge_data.drop(['是否打折销售'],axis=1,inplace=True)# %%
merge_data.drop(['销售类型'],axis=1,inplace=True)# %%
merge_data# %%
# 透视表
pivot_table = merge_data.pivot_table(index='销售日期', columns='分类名称', values='销量(千克)', aggfunc='sum')
pivot_table# %%
pivot_table.describe()# %%
# 计算偏度
pivot_table.skew()# %%
# 计算峰度
pivot_table.kurt()# %%
df=pivot_table.resample('3M').sum()
df# %%
dff=df.corr()
dff# %%
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = Falseplt.rcParams['font.size'] = 12
plt.rcParams['xtick.labelsize']=12
plt.rcParams['ytick.labelsize']=12
plt.rcParams['axes.labelsize']=12
plt.rcParams['axes.titlesize']=12# %%
plt.figure(figsize=(10, 6))
# 热力图上显示系数
sns.heatmap(dff, cmap='coolwarm', square=True, annot=True)
# sns.heatmap(dff, cmap='coolwarm', fmt=".2f", linewidths=.5, square=True, cbar_kws={"shrink": .5})
plt.title('各分类名称之间的相关系数热力图')
plt.show()# %%
pivot_table2= merge_data.pivot_table(index='销售日期', columns='单品名称', values='销量(千克)', aggfunc='sum')
pivot_table2.describe()# %%
pivot_table2.info()# %%
pivot_table2# %%
df2=pivot_table2.resample('3M').sum()# %%
df_d=df2.describe()
df_d# %%
# 计算峰度与偏度
s1=df2.skew()
s2=df2.kurt()
s1
d1=dict(s1)
d2=dict(s2)# %%
df2_skew=pd.DataFrame(d1,index=['skew'],columns=s1.index)
df2_kurt=pd.DataFrame(d2,index=['kurt'],columns=s2.index)
df2_skew# %%
# 按行合并
df_d = pd.concat([df_d, df2_skew, df2_kurt], axis=0)
df_d# %%
# 选取前六列
dfff2 = df_d.iloc[:, :6]# %%
# 画出折线图
dfff2.plot(kind='line', figsize=(10,8 ))
plt.title('各单品名称销量(千克)')
plt.show()# %%
plt.figure(figsize=(10, 8))
sns.heatmap(dfff2, cmap='coolwarm', square=True, annot=True)
plt.title('各单品名称之间的相关系数热力图')
plt.show()# %%
df_dd=pivot_table2.describe()
df_dd# %%
label_list =df_dd.columns
# 从数据框中选择第一行数据,并使用sort_values()函数对其进行排序,使其按降序排列。
num_list1 =df_dd.iloc[0].sort_values(ascending=False)
plt.bar(label_list,num_list1)
plt.ylabel("销售数量")
plt.xticks(label_list)
plt.xlabel("单品名称")
plt.title("某公司2012-2013年前6个月出货量")
plt.legend()
plt.show()# %%
x = df_dd.iloc[0].sort_values(ascending=False)  				#数据集
plt.boxplot(x)    				#垂直显示箱线图
plt.show()						#显示该图# %%

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】 —— 编译和链接

【C语言】 —— 编译和链接 一、编译环境和运行环境二、翻译环境2.1、 预处理2.2、 编译&#xff08;1&#xff09;词法分析&#xff08;2&#xff09;语法分析&#xff08;3&#xff09;语义分析 2.3、 汇编2.4、链接 三、运行环境 一、编译环境和运行环境 平时我们说写 C语言…

C语言中32位浮点数的格式

以 GNU C为例&#xff0c;它遵循 IEEE 754-2008标准中制定的浮点表示规范。在该规范中定义了 5种不同大小的基础二进制浮点格式&#xff0c;包括&#xff1a;16位&#xff0c;32位&#xff0c;64位&#xff0c;128位&#xff0c;256位。其中&#xff0c;32位的格式被用作标准 C…

使用AOP思想实现开闭原则下的流水日志输出

主要实现思想&#xff1a; 通过实现Convert接口来抽取公共组件&#xff0c;获取想要的标准模型。 现在有两个订单场景&#xff0c;一个保存订单&#xff0c;一个为更新订单。构造如下的服务类&#xff1a; import org.springframework.stereotype.Service;Service public clas…

JavaScript-实例-button

1 需求 2 接口 3 点击button跳转到一个页面 在HTML中&#xff0c;当你想要点击一个按钮并跳转到另一个页面时&#xff0c;通常你可以使用<a>标签来包裹按钮的样式&#xff08;尽管这通常不是最佳实践&#xff0c;因为<a>标签是用于链接的&#xff0c;而<button&…

SHAP(SHapley Additive exPlanations)基于XGBoost模型的可解释机器学习

模型可解释性 这是一个关于错误解释机器学习模型的危险以及正确解释它的价值的故事。如果您发现诸如梯度提升机或随机森林之类的集成树模型的鲁棒准确性很有吸引力&#xff0c;但也需要解释它们&#xff0c;那么我希望您发现这些信息有用且有帮助。 试想一下&#xff0c;我们…

julia系列17: tsp问题代码整理

1. 常用库和基础函数 这里是优化版的函数&#xff1a; using TSPLIB,LKH,Distances,PyPlot MaxNum 10000 tspreadTSPLIB(:att48) dist [round.(Int,euclidean(tsp.nodes[i,:],tsp.nodes[j,:])) for i in 1:tsp.dimension,j in 1:tsp.dimension]; pos(tsp::TSP,t::Vector{In…

Groovy中,多种循环方式

1.最常规的for循环 for (def i 0; i < 5; i) { //这个i需要声明println "遍历输出${i}" }2.while循环 def j 0 while (j < 5) {println "遍历输出 ${j}"j }3.for in 循环 def list [0, 1, 2, 3, 4] //这个l无需声明 for (l in list) { printl…

uniapp跨域问题解决

找到menifest文件&#xff0c;在文件的最后添加如下代码&#xff1a; // h5 解决跨域问题"h5":{"devServer": {"proxy": {"/adminapi": {"target": "https://www.demo.com", // 目标访问网址"changeOrigin…

数据库的存储引擎,数据类型,约束条件,严格模式

【一】存储引擎 1.什么是存储引擎存储引擎可以理解为处理数据的不同方式 2.查看存储引擎show engines; 3.须知的引擎MyISAM5.5之前版本MySQL默认的存储引擎特点:存取数据的速度快 但是功能很少 安全性较低速度快因为自带索引InnoDB5.5之后版本MySQL默认的存储引擎特点:有诸多功…

工程施工合同无效但竣工交付,应当参照合同关于工程价款的约定计算折价补偿款

审判实践中&#xff0c;对于建设工程施工合同无效但工程竣工并交付使用的&#xff0c;应以何种标准计算折价补偿款的问题&#xff0c;认识不一致。【法官会议意见】&#xff1a;建设工程施工合同是承包人进行工程建设、交付工作成果即建设工程并由发包人支付价款的合同。建设工…

httpd目录显示乱码问题

vim /etc/httpd/conf/httpd.conf 在<Directory “/var/www/html”>下添加&#xff1a; IndexOptions CharsetUTF-8重启httpd: systemctl restart httpd.service还是不好看&#xff0c;调整下显示宽度&#xff0c;还是这个位置&#xff1a; <Directory “/var/www/ht…

区块链论文速读A会-ISSTA 2023(2/2)如何检测DeFi协议中的价格操纵漏洞

Conference&#xff1a;ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) CCF level&#xff1a;CCF A Categories&#xff1a;Software Engineering/System Software/Programming Languages Year&#xff1a;2023 第1~5篇区块链文章 请点击此…

09视图,触发器,事务,存储过程,函数,流程控制,索引,隔离机制,锁机制,三大范式

【一】视图 (1)视图须知概念 1.什么是视图&#xff1f; 视图就是通过查询得到一张虚拟表&#xff0c;然后保存下来&#xff0c;下次可以直接使用 2.为什么要用视图&#xff1f; 如果要频繁操作一张虚拟表(拼表组成)&#xff0c;就可以制作成视图&#xff0c;后续直接操作 注意…

IDEA 创建springboot项目杂记-更新中

一、工具使用杂记 1、使用maven 创建新springboot项目时&#xff0c;因为https://start.spring.io/ 连接不上项目无法创建。直接把脚手架地址换为国内的 http://start.aliyun.com

田忌赛马 贪心

本题是更难的那道,一场50 最低为o 第一行一个整数 &#x1d45b;n &#xff0c;表示他们各有几匹马&#xff08;两人拥有的马的数目相同&#xff09;。第二行 &#x1d45b;n 个整数&#xff0c;每个整数都代表田忌的某匹马的速度值&#xff08;0≤0≤ 速度值 ≤100≤1…

Python】从文本字符串中提取数字、电话号码、日期、网址的方法

关于从文本字符串中提取数字、电话号码、日期和网址的方法&#xff1a; 提取数字&#xff1a; 在 Python 中&#xff0c;使用正则表达式 \d 来匹配数字。 \d 表示匹配一个数字字符&#xff08;0-9&#xff09;。如果要匹配连续的数字&#xff0c;可以使用 \d 。 import re def …

C++面向对象的常见面试题目(一)

1. 面向对象的三大特征 &#xff08;1&#xff09;封装&#xff1a;隐藏对象的内部状态&#xff0c;只暴露必要的接口。 #include <iostream> #include <string>// 定义一个简单的类 Person class Person { private: // 私有成员&#xff0c;外部不可直接访问std…

Mac OS ssh 连接提示 Permission denied (publickey)

这错误有点奇葩&#xff0c;MacBook的IDE(vscode和pycharm)远程都连不上&#xff0c;terminal能连上&#xff0c;windows的pycharm能连上&#xff0c;见鬼了&#xff0c;所以肯定不是秘钥的问题了&#xff0c;查了好久竟然发现是权限的问题。。 chmod 400 ~/.ssh/id_rsa http…

华为机试HJ37统计每个月兔子的总数

华为机试HJ37统计每个月兔子的总数 题目&#xff1a; 想法&#xff1a; 上述题目实际是一个斐波那契数列&#xff0c;利用斐波那契数列对问题进行求解 input_number int(input())def fib(n):if n < 2:return 1else:n_1 1n_2 1count 2while count < n:n_1, n_2 n_…

【Android】【多屏】多屏异显异触调试技巧总结

这里写目录标题 如何获取多屏IDs获取多屏的size/density如何启动应用到指定DisplayId多屏截屏/录屏screencapscreenrecord发送按键到指定DisplayId 如何获取多屏IDs dumpsys display | grep mDisplayIdtrinket:/ # dumpsys display | grep mDisplayIdmDisplayId0mDisplayId2 t…