我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python数据预处理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python数据预处理

Ⅰ.数据源

catering_sale.xls
catering_sale_all.xls

Ⅱ.导入库

import pandas as pdimport numpy as npfrom scipy import statsimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.preprocessing import MinMaxScaler, StandardScaler# 避免画图时无法显示中文(中文部分以正方格显示)plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# 显示所有的列,而不是以……显示pd.set_option('display.max_columns', None)# 显示所有的行,而不是以……显示pd.set_option('display.max_rows', None)# 不自动换行显示pd.set_option('display.width', None)

Ⅲ.读取数据

# 读取文件catering_sale=pd.read_excel('./data/catering_sale.xls')

Ⅳ.数据缺失值处理

# 判断是否存在缺失值print(catering_sale.info(),'\n')# print(np.isnan(catering_sale).any(),'\n')catering_sale2=catering_sale.dropna(axis=0)print(catering_sale2.info(),'\n')

输出结果如下:

<class 'pandas.core.frame.DataFrame'>RangeIndex: 201 entries, 0 to 200Data columns (total 2 columns): #   Column  Non-Null Count  Dtype         ---  ------  --------------  -----          0   日期      201 non-null    datetime64[ns] 1   销量      200 non-null    float64       dtypes: datetime64[ns](1), float64(1)memory usage: 3.3 KBNone <class 'pandas.core.frame.DataFrame'>Int64Index: 200 entries, 0 to 200Data columns (total 2 columns): #   Column  Non-Null Count  Dtype         ---  ------  --------------  -----          0   日期      200 non-null    datetime64[ns] 1   销量      200 non-null    float64       dtypes: datetime64[ns](1), float64(1)memory usage: 4.7 KBNone 

观察可知,【销量】存在一个缺失值,本例将缺失值所在行进行删除处理

Ⅴ.数据特征分析

# 数据特征分析y=catering_sale2.iloc[:,1]print(catering_sale2.describe(),'\n')m=stats.mode(y)r=np.max(y)-np.min(y)cv=np.std(y)/np.mean(y)n,(smin,smax),sm,sv,ss,sk=stats.describe(y)print(f"统计量:{n},最小值:{smin},最大值:{smax},极差:{r},众数:{m},均值:{sm},方差:{sv},偏度:{ss},峰度:{sk},变异系数:{cv}\n")

输出结果如下:

                销量count   200.000000mean   2755.214700std     751.029772min      22.00000025%    2451.97500050%    2655.85000075%    3026.125000max    9106.440000 统计量:200,最小值:22.0,最大值:9106.44,极差:9084.44,众数:ModeResult(mode=array([2618.2]), count=array([2])),均值:2755.2146999999995,方差:564045.7182129748,偏度:3.0384935298149753,峰度:29.36759633770712,变异系数:0.2719025288924932

Ⅵ.数据异常值处理

# 画箱线图y=np.array(y)def boxplot(y,title):    plt.style.use('ggplot')    plt.subplots()    plt.boxplot(y,patch_artist=True,showmeans=True,showfliers=True,medianprops={'color':'yellow'},flierprops={'markerfacecolor':'red'},labels=[''])    plt.xlabel('销量')    plt.text(1.05,3850,'上边缘')    plt.text(1.05,1780,'下边缘')    plt.text(1.1,3000,'上四分位数Q3')    plt.text(0.8,2600,'中位数Q2')    plt.text(1.1,2300,'下四分位数Q1')    plt.text(1.05,6500,'异常值')    plt.title(f'{title}箱线图')    plt.show()# 计算上下四分位数q1=np.quantile(y,q=0.25)q3=np.quantile(y,q=0.75)# 异常值判断标准,1.5倍的四分位差 计算上下须对应的值low_quantile=q1-1.5*(q3-q1)high_quantile=q3+1.5*(q3-q1)print(f'下四分位数Q1:{q1},上四分位数Q3:{q3},下边缘:{low_quantile},上边缘:{high_quantile}\n')y2=[]for i in y:    if i>high_quantile:        i=high_quantile        y2.append(i)    elif i<low_quantile:        i=low_quantile        y2.append(i)    else:        y2.append(i)boxplot(y,title='异常值处理前')boxplot(y2,title='异常值处理后')

输出结果如下:
异常值处理前箱线图

下四分位数Q1:2451.975,上四分位数Q3:3026.125,下边缘:1590.7499999999998,上边缘:3887.3500000000004

观察可知,箱线图上下边缘存在异常值,本例通过四分位法对异常值进行处理,即:超出上边缘的异常值让其落在上边缘,低于下边缘的异常值让其落在下边缘

输出结果如下:
异常值处理后箱线图

Ⅶ.数据标准化/归一化处理

# 标准化处理catering_sale_all=pd.read_excel('./data/catering_sale_all.xls',index_col=0)# 方法一:归一化处理normalization_data1=MinMaxScaler().fit_transform(catering_sale_all)normalization_data1=[[round(j,2) for j in normalization_data1[i]] for i in range(len(normalization_data1))]normalization_data1=np.array(normalization_data1)# 方法二:标准化处理normalization_data2=StandardScaler().fit_transform(catering_sale_all)normalization_data2=[[round(j,2) for j in normalization_data2[i]] for i in range(len(normalization_data2))]normalization_data2=np.array(normalization_data2)print(f'方法一:归一化处理:\n{normalization_data1}\n方法二:标准化处理:\n{normalization_data2}')

输出结果如下:

方法一:归一化处理:[[1.   0.1  0.4  1.   0.9  0.83 0.94 0.45 0.64 1.  ] [0.57 1.   1.   0.48 0.5  0.58 1.   0.73 1.   0.39] [0.5  0.3  0.8  0.48 0.4  0.   0.33 0.55 0.64 0.22] [0.43 0.1  0.2  0.   0.6  0.5  0.44 0.73 1.   0.39] [0.07 0.5  0.9  0.24 0.8  0.58 0.89 0.55 0.91 0.43] [0.71 0.5  0.9  0.62 0.4  0.5  0.61 0.55 0.18 0.22] [0.43 0.2  0.9  0.24 0.1  0.33 0.5  0.27 0.64 0.13] [0.43 0.7  0.9  0.14 0.3  0.42 0.28 0.64 0.73 0.04] [0.21 0.3  0.4  0.   0.1  0.08 0.22 0.   0.36 0.26] [0.43 0.6  0.9  0.14 0.4  0.33 0.28 0.36 0.45 0.22] [0.21 0.2  0.4  0.29 0.   0.33 0.39 0.   0.   0.26] [0.14 0.4  0.   0.19 0.4  0.5  0.78 0.36 0.91 0.22] [0.43 0.2  0.7  0.29 0.7  0.42 0.72 0.36 0.55 0.48] [0.5  0.3  0.6  0.14 1.   0.83 0.83 0.36 0.09 0.43] [0.71 0.7  0.8  0.33 0.5  0.67 0.39 0.64 0.55 0.48] [0.07 0.3  0.8  0.38 0.5  0.33 0.5  0.09 0.73 0.3 ] [0.21 0.7  0.6  0.29 0.7  0.08 0.39 0.82 0.27 0.39] [0.43 1.   0.   0.43 0.3  0.5  0.   0.   0.82 0.17] [0.   0.5  0.9  0.48 0.9  0.42 0.67 0.   0.73 0.3 ] [0.36 0.2  0.5  0.81 0.1  0.75 0.39 0.18 0.45 0.3 ] [0.57 0.1  0.7  0.24 0.3  0.42 0.44 0.18 0.64 0.22] [0.57 0.1  0.1  0.57 0.3  0.92 0.72 0.18 0.27 0.17] [0.07 0.2  0.6  0.19 0.2  0.58 0.44 0.64 0.36 0.04] [0.29 0.   0.2  0.19 0.8  1.   0.28 0.64 0.55 0.  ] [0.36 0.3  0.8  0.52 0.4  0.67 0.33 0.64 0.64 0.09] [0.07 0.5  0.8  0.29 0.3  0.42 0.39 0.45 0.64 0.3 ] [0.21 0.2  0.3  0.38 0.3  0.33 0.44 1.   0.64 0.3 ] [0.36 0.   0.7  0.33 0.4  0.67 0.39 0.45 0.64 0.22] [0.36 0.1  0.3  0.29 0.2  0.08 0.28 0.55 0.27 0.22]]方法二:标准化处理:[[ 2.81 -0.95 -0.64  3.05  1.77  1.42  1.93  0.11  0.3   3.89] [ 0.9   2.41  1.39  0.62  0.23  0.4   2.17  1.15  1.74  0.59] [ 0.58 -0.21  0.71  0.62 -0.16 -1.98 -0.68  0.45  0.3  -0.36] [ 0.26 -0.95 -1.32 -1.59  0.61  0.06 -0.2   1.15  1.74  0.59] [-1.33  0.54  1.05 -0.49  1.38  0.4   1.69  0.45  1.38  0.82] [ 1.54  0.54  1.05  1.28 -0.16  0.06  0.51  0.45 -1.5  -0.36] [ 0.26 -0.58  1.05 -0.49 -1.32 -0.62  0.03 -0.58  0.3  -0.83] [ 0.26  1.29  1.05 -0.93 -0.55 -0.28 -0.92  0.8   0.66 -1.3 ] [-0.69 -0.21 -0.64 -1.59 -1.32 -1.64 -1.15 -1.62 -0.78 -0.12] [ 0.26  0.92  1.05 -0.93 -0.16 -0.62 -0.92 -0.24 -0.42 -0.36] [-0.69 -0.58 -0.64 -0.27 -1.7  -0.62 -0.44 -1.62 -2.22 -0.12] [-1.01  0.17 -2.   -0.71 -0.16  0.06  1.22 -0.24  1.38 -0.36] [ 0.26 -0.58  0.37 -0.27  1.   -0.28  0.98 -0.24 -0.06  1.06] [ 0.58 -0.21  0.04 -0.93  2.15  1.42  1.46 -0.24 -1.86  0.82] [ 1.54  1.29  0.71 -0.05  0.23  0.74 -0.44  0.8  -0.06  1.06] [-1.33 -0.21  0.71  0.18  0.23 -0.62  0.03 -1.28  0.66  0.11] [-0.69  1.29  0.04 -0.27  1.   -1.64 -0.44  1.49 -1.14  0.59] [ 0.26  2.41 -2.    0.4  -0.55  0.06 -2.1  -1.62  1.02 -0.59] [-1.65  0.54  1.05  0.62  1.77 -0.28  0.74 -1.62  0.66  0.11] [-0.05 -0.58 -0.3   2.16 -1.32  1.08 -0.44 -0.93 -0.42  0.11] [ 0.9  -0.95  0.37 -0.49 -0.55 -0.28 -0.2  -0.93  0.3  -0.36] [ 0.9  -0.95 -1.66  1.06 -0.55  1.75  0.98 -0.93 -1.14 -0.59] [-1.33 -0.58  0.04 -0.71 -0.93  0.4  -0.2   0.8  -0.78 -1.3 ] [-0.37 -1.33 -1.32 -0.71  1.38  2.09 -0.92  0.8  -0.06 -1.54] [-0.05 -0.21  0.71  0.84 -0.16  0.74 -0.68  0.8   0.3  -1.07] [-1.33  0.54  0.71 -0.27 -0.55 -0.28 -0.44  0.11  0.3   0.11] [-0.69 -0.58 -0.98  0.18 -0.55 -0.62 -0.2   2.18  0.3   0.11] [-0.05 -1.33  0.37 -0.05 -0.16  0.74 -0.44  0.11  0.3  -0.36] [-0.05 -0.95 -0.98 -0.27 -0.93 -1.64 -0.92  0.45 -1.14 -0.36]]

Ⅷ.数据相关性分析

# 相关性分析pearson=catering_sale_all.corr(method='pearson')print('相关性矩阵:\n',pearson)y2=catering_sale_all.iloc[:,1:]# 相关性矩阵散点图# sns.pairplot(y2,kind='reg',diag_kind='hist')# plt.title('相关性矩阵散点图')# plt.show()# 相关性矩阵热力图sns.heatmap(pearson,square=True,annot=True)plt.title('相关性矩阵热力图')plt.show()

输出结果如下:
相关性矩阵热力图

相关性矩阵:            百合酱蒸凤爪    翡翠蒸香茜饺   金银蒜汁蒸排骨     乐膳真味鸡     蜜汁焗餐包      生炒菜心    铁板酸菜豆腐     香煎韭菜饺     香煎罗卜糕    原汁原味菜心百合酱蒸凤爪   1.000000  0.009206  0.016799  0.455638  0.126700  0.308496  0.204898  0.127448 -0.090276  0.428316翡翠蒸香茜饺   0.009206  1.000000  0.304434 -0.012279  0.066560 -0.180446 -0.026908  0.062344  0.270276  0.020462金银蒜汁蒸排骨  0.016799  0.304434  1.000000  0.035135  0.122710 -0.184290  0.187272  0.121543  0.077808  0.029074乐膳真味鸡    0.455638 -0.012279  0.035135  1.000000  0.089602  0.325462  0.297692 -0.068866 -0.030222  0.421878蜜汁焗餐包    0.126700  0.066560  0.122710  0.089602  1.000000  0.361068  0.528772  0.219578  0.200550  0.516849生炒菜心     0.308496 -0.180446 -0.184290  0.325462  0.361068  1.000000  0.369787  0.038233  0.049898  0.122988铁板酸菜豆腐   0.204898 -0.026908  0.187272  0.297692  0.528772  0.369787  1.000000  0.095543  0.157958  0.567332香煎韭菜饺    0.127448  0.062344  0.121543 -0.068866  0.219578  0.038233  0.095543  1.000000  0.178336  0.049689香煎罗卜糕   -0.090276  0.270276  0.077808 -0.030222  0.200550  0.049898  0.157958  0.178336  1.000000  0.088980原汁原味菜心   0.428316  0.020462  0.029074  0.421878  0.516849  0.122988  0.567332  0.049689  0.088980  1.000000

来源地址:https://blog.csdn.net/m0_67790374/article/details/126071343

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python数据预处理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 文本数据预处理实践

在进行数据分析与可视化之前,得先处理好数据,而很多时候需要处理的都是文本数据,本文总结了一些文本预处理的方法。

怎么用Python做数据预处理

这篇文章给大家介绍怎么用Python做数据预处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前戏在拿到一份数据准备做挖掘建模之前,首先需要进行初步的数据探索性分析(你愿意花十分钟系统了解数据分析方法吗?),对数据探索
2023-06-02

使用Python对EXCEL数据的预处理

这篇文章主要介绍了使用Python处理EXCEL基础操作篇2,如何使用Python对EXCEL数据的预处理,文中提供了解决思路和部分实现代码,一起来看看吧
2023-03-22

Python pandas数据预处理之行数据复制方式

本文详细介绍了PythonPandas中行数据复制的方法,包括:使用copy()方法创建数据帧副本,对其修改不影响原数据。使用loc属性复制行到新行或现有行。使用assign()方法添加新列或修改现有列,同时进行行复制。使用concat()方法连接数据帧,实现行复制。选择最佳方法取决于具体需求,如是否需要对副本修改、复制到特定位置或添加新列等。
Python pandas数据预处理之行数据复制方式
2024-04-02

python数据预处理的方法有哪些

Python数据预处理的方法有:1. 数据清洗:处理缺失值、异常值、重复值等问题。2. 数据整合:将不同来源的数据整合到一起,如合并多个数据集、拼接数据等。3. 数据变换:对数据进行转换,如数据类型转换、标准化、归一化、离散化等。4. 特征
2023-08-09

怎么在python中实现数据预处理

这篇文章将为大家详细讲解有关怎么在python中实现数据预处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注
2023-06-14

Python Pandas数据预处理:你知道数据标准化吗?

z 映射的值是用当前特征值与比较数组的平均值之差,除以比较数组的标准差计算得来的。例如,我们可以计算列 deceduti 的 z-map,使用列 terapia_intenva 作为比较数组。我们可以使用 scipy.stats​ 库的 z

python优化数据预处理方法是什么

本篇内容主要讲解“python优化数据预处理方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python优化数据预处理方法是什么”吧!我们知道现实中的数据通常是杂乱无章的,需要大量的预处
2023-06-25

大数据预处理综述

数据预处理背景大数据项目开发流程数据质量准确性:数据是正确的,数据存储在数据库中的值对应于真实世界的值。数据不准确的原因数据收集设备故障。数据输入错误。数据传输过程出错。命名约定、数据输入、输入字段格式不一致。相关性:指数据与特定的应用和领域有关。相关性应用场
大数据预处理综述
2021-12-10

Python数据预处理常用的技巧有哪些

本篇内容介绍了“Python数据预处理常用的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据集这是一个包含脏数据的示例数据框让我
2023-06-29

使用 Python 进行数据预处理的标准化

数据的基本缩放是使其成为标准,以便所有值都在共同范围内。 在标准化中,数据的均值和方差分别为零和一。 它总是试图使数据呈正态分布。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录