python数据预处理

这篇具有很好参考价值的文章主要介绍了python数据预处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ⅰ.数据源

python数据预处理,python,python,数据分析
python数据预处理,python,python,数据分析

Ⅱ.导入库

import pandas as pd
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns
from 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 200
Data 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 KB
None 

<class 'pandas.core.frame.DataFrame'>
Int64Index: 200 entries, 0 to 200
Data 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 KB
None 

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

Ⅴ.数据特征分析

# 数据特征分析
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.000000
mean   2755.214700
std     751.029772
min      22.000000
25%    2451.975000
50%    2655.850000
75%    3026.125000
max    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='异常值处理后')

输出结果如下:
python数据预处理,python,python,数据分析

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

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

输出结果如下:
python数据预处理,python,python,数据分析

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

# 标准化处理
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()

输出结果如下:
python数据预处理,python,python,数据分析文章来源地址https://www.toymoban.com/news/detail-547590.html

相关性矩阵:
            百合酱蒸凤爪    翡翠蒸香茜饺   金银蒜汁蒸排骨     乐膳真味鸡     蜜汁焗餐包      生炒菜心    铁板酸菜豆腐     香煎韭菜饺     香煎罗卜糕    原汁原味菜心
百合酱蒸凤爪   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

到了这里,关于python数据预处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据分析--数据预处理

    本文主要是个人的学习笔记总结,数据预处理的基本思路和方法,包括一些方法的使用示例和参数解释,具体的数据预处理案例case详见其他文章。如有错误之处还请指正! 目录 数据的质量评定 数据处理步骤 缺失值的处理 标记缺失值 删除 缺失值 填充 缺失值 重复值处理 异

    2024年02月04日
    浏览(58)
  • 文本预处理——文本数据分析

    2024年02月15日
    浏览(44)
  • SPSSPRO数据分析之——CSI数据预处理、降维

    目录 一、前言 二、数据准备 三、进行预处理  四、进行降维任务 五、正态性检测  六、描述性统计 七、频数分析 八、代码功能 SPSSPRO是一款全新的在线数据分析平台,可以用于科研数据的分析、数学建模等,对于那些不会编程或者刚进入科研的新人来说,这款工具再合适

    2024年02月09日
    浏览(79)
  • SPSSPRO数据分析之——CSI指纹数据分析(预处理、降维等)

    目录 一、前言 二、数据准备 三、进行预处理  四、进行降维任务 五、正态性检测  六、描述性统计 七、频数分析 八、代码功能 SPSSPRO是一款全新的在线数据分析平台,可以用于科研数据的分析、数学建模等,对于那些不会编程或者刚进入科研的新人来说,这款工具再合适

    2024年02月13日
    浏览(58)
  • 人工智能:数据分析之数据预处理、分析模型与可视化

    在人工智能和数据科学领域,数据分析是一种核心过程,它帮助我们从大量的数据中提取有价值的信息。数据分析的质量和结果直接影响到决策的效率和准确性。在这篇博客中,我们将详细探讨数据分析的关键步骤,包括数据预处理、分析模型和可视化,并通过实际应用案例

    2024年03月10日
    浏览(76)
  • 云计算与大数据分析:如何实现高效的数据清洗与预处理

    随着互联网的普及和数据的快速增长,数据分析和处理成为了企业和组织中的重要组成部分。大数据分析是指利用大量数据来发现新的信息和洞察,从而为企业和组织提供决策支持。云计算是一种基于互联网的计算资源共享和分配模式,它可以让企业和组织更加高效地利用计

    2024年04月11日
    浏览(48)
  • 脑电信号处理与特征提取——4.脑电信号的预处理及数据分析要点(彭微微)

    目录 四、脑电信号的预处理及数据分析要点 4.1 脑电基础知识回顾 4.2 伪迹  4.3 EEG预处理 4.3.1 滤波 4.3.2 重参考 4.3.3 分段和基线校正 4.3.4 坏段剔除 4.3.5 坏导剔除/插值 4.3.6 独立成分分析ICA 4.4 事件相关电位(ERPs) 4.4.1 如何获得ERPs 4.4.2 ERP研究应该报告些什么 4.4.3 如何呈现E

    2024年02月15日
    浏览(84)
  • GEO生信数据挖掘(六)实践案例——四分类结核病基因数据预处理分析

    前面五节,我们使用阿尔兹海默症数据做了一个数据预处理案例,包括如下内容: GEO生信数据挖掘(一)数据集下载和初步观察 GEO生信数据挖掘(二)下载基因芯片平台文件及注释 GEO生信数据挖掘(三)芯片探针ID与基因名映射处理 GEO生信数据挖掘(四)数据清洗(离群值

    2024年02月07日
    浏览(57)
  • GPT-4科研实践:数据可视化、统计分析、编程、机器学习数据挖掘、数据预处理、代码优化、科研方法论

    查看原文GPT4科研实践技术与AI绘图 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。 例如在科研编程、绘图领域 : 1、编程建议和示例代码:  无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。

    2024年02月07日
    浏览(63)
  • 基于Hadoop的MapReduce网站日志大数据分析(含预处理MapReduce程序、hdfs、flume、sqoop、hive、mysql、hbase组件、echarts)

    需要本项目的可以私信博主!!! 本项目包含:PPT,可视化代码,项目源码,配套Hadoop环境(解压可视化),shell脚本,MapReduce代码,文档以及相关说明教程,大数据集! 本文介绍了一种基于Hadoop的网站日志大数据分析方法。本项目首先将网站日志上传到HDFS分布式文件系统

    2024年02月16日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包