数据分析——数据规范化

news2024/11/18 20:20:27

数据规范化是数据分析中的一个重要步骤,其目的在于确保数据的一致性和可比性,提高数据质量和分析结果的准确性。以下是一些数据规范化的常见方法和技术:

  1. 数据清洗:此步骤主要清除数据中的重复项、空格、格式错误等,确保数据的准确性和完整性。
  2. 数据转换:数据转换涉及将不同格式或单位的数据统一化,如转换日期格式、货币单位或度量单位,以便进行更有效的比较和分析。
  3. 数据规范化:这一步主要是将文本数据转换为统一的术语和格式。例如,设定规则、使用词典或将数据转换为特定的数据格式,以确保数据的一致性和可读性。
  4. 数据映射:当处理来自不同数据源的数据时,数据映射特别有用。它将不同数据源的数据映射到一个标准化的模板中,确保数据的一致性和可比性。
  5. 数据匹配:这一步骤主要是将同一实体的不同表述进行匹配。例如,在处理个人信息时,可能会将“小李”和“李小”这样的不同姓名表述匹配为同一实体。
  6. 数据验证:验证数据是否符合预设的规则或标准,确保数据的准确性和有效性。

在实际应用中,数据规范化有多种方法,例如Min-max规范化、Z-Score规范化以及小数定标规范化等。Min-max规范化是将原始数据投射到指定的空间[min,max],通过公式新数值 = (原数值-极小值)/ (极大值 - 极小值) 进行计算。Z-Score规范化则是将原始数据转换为正态分布的形式,使得结果更易于比较,其公式为新数值 = (原数值 - 均值)/ 标准差。而小数定标规范化则是通过移动小数点的位置来进行规范化,具体移动位数取决于数据取值的最大绝对值。

除了提高数据质量和一致性,数据规范化还有助于提高数据的准确性和有效性,使得不同来源的数据可以进行更好的比较和分析。同时,它也有助于确保数据的安全和隐私保护,降低数据泄露和滥用的风险。此外,数据规范化还是数据治理和管理的基础,为组织提供了更可靠的数据支持,有助于做出更明智的决策。

在数据库设计中,规范化同样是一个关键步骤。它通过消除冗余数据、降低数据的插入、更新和删除异常,使得数据库中的数据具有最小冗余、最高一致性和完整性。这有助于优化数据库的性能和安全性,提高数据的响应速度和吞吐量。

总的来说,数据规范化是确保数据质量、提高数据分析效率、保障数据安全以及优化数据库设计的重要手段。对于任何组织来说,实施数据规范化都是提升数据管理水平和竞争力的重要途径。

 极大值极小值规划

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter

# 假设你的数据保存在一个名为 '各站点各时刻进出站客流数据.xlsx' 的 Excel 文件中
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 取前几行数据,如果只需要一部分数据进行分析的话
data = data.head(20)

# 将'日期'和'时刻'列合并为一个时间戳
data['时间戳'] = pd.to_datetime(data['日期']) + pd.to_timedelta(data['时刻'], unit='H')

# 设置 '时间戳' 列为 DataFrame 的索引,方便后续绘图
data.set_index('时间戳', inplace=True)

# 删除原始的'日期'和'时刻'列
data.drop(['日期', '时刻'], axis=1, inplace=True)


# 数据规范化 - 使用极大值和极小值进行规范化
def min_max_scaler(data_series):
    min_val = data_series.min()
    max_val = data_series.max()
    return (data_series - min_val) / (max_val - min_val)


# 应用规范化函数到'进站人数'和'出站人数'列
data['进站人数'] = min_max_scaler(data['进站人数'])
data['出站人数'] = min_max_scaler(data['出站人数'])

# 绘制进站人数的折线图
plt.figure(figsize=(12, 6))
plt.plot(data.index, data['进站人数'], label='进站人数', marker='o')

# 绘制出站人数的折线图
plt.plot(data.index, data['出站人数'], label='出站人数', marker='o')

# 设置图表标题和轴标签
plt.title('站点编号155随时间变化的进出站人数折线图')
plt.xlabel('时间')
plt.ylabel('规范化后的进出站人数')

# 显示图例
plt.legend()

# 格式化x轴时间戳显示
plt.gca().xaxis.set_major_formatter(DateFormatter('%Y-%m-%d %H:%M'))

# 设置 Matplotlib 的参数,以使用支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号

# 显示图表
plt.show()

 

 零一规划

import pandas as pd  
import matplotlib.pyplot as plt  
from matplotlib.dates import DateFormatter  
  
# 假设你的数据保存在一个名为 '各站点各时刻进出站客流数据.xlsx' 的 Excel 文件中  
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')  
  
# 取前几行数据,如果只需要一部分数据进行分析的话  
data = data.head(20)  
  
# 将'日期'和'时刻'列合并为一个时间戳  
data['时间戳'] = pd.to_datetime(data['日期']) + pd.to_timedelta(data['时刻'], unit='H')  
  
# 设置 '时间戳' 列为 DataFrame 的索引  
data.set_index('时间戳', inplace=True)  
  
# 删除原始的'日期'和'时刻'列  
data.drop(['日期', '时刻'], axis=1, inplace=True)  
  
# 零一归化函数  
def normalize(data_series):  
    min_val = data_series.min()  
    range_val = data_series.max() - min_val  
    return (data_series - min_val) / range_val  
  
# 应用零一归化到'进站人数'和'出站人数'列  
data['进站人数'] = normalize(data['进站人数'])  
data['出站人数'] = normalize(data['出站人数'])  
  
# 绘制进站人数的折线图  
plt.figure(figsize=(12, 6))  
plt.plot(data.index, data['进站人数'], label='进站人数', marker='o')  
  
# 绘制出站人数的折线图  
plt.plot(data.index, data['出站人数'], label='出站人数', marker='o')  
  
# 设置图表标题和轴标签  
plt.title('站点编号155随时间变化的进出站人数折线图(零一归化)')  
plt.xlabel('时间')  
plt.ylabel('零一归化后的进出站人数')  
  
# 显示图例  
plt.legend()  
  
# 格式化x轴时间戳显示  
plt.gca().xaxis.set_major_formatter(DateFormatter('%Y-%m-%d %H:%M'))  
  
# 设置 Matplotlib 的参数,以使用支持中文的字体  
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体  
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号  
  
# 显示图表  
plt.show()

 

 不规划

import pandas as pd
import matplotlib.pyplot as plt

# 假设您的数据保存在一个名为 '各站点各时刻进出站客流数据.xlsx' 的 Excel 文件中
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')
data = data.head(20)
# 选择需要进行归一化的列
columns_to_normalize = ['进站人数', '出站人数']

# 绘制归一化后的进站人数和出站人数的折线图
plt.figure(figsize=(12, 6))

# 绘制进站人数的折线图
plt.plot(data['时刻'], data['进站人数'], label='进站人数 (归一化后)', marker='o')

# 绘制出站人数的折线图
plt.plot(data['时刻'], data['出站人数'], label='出站人数 (归一化后)', marker='o')

# 设置图表标题和轴标签
plt.title('站点随时间变化的进出站人数折线图(归一化后)')
plt.xlabel('时间')
plt.ylabel('归一化后的进出站人数')

# 显示图例
plt.legend()
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体为黑体
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号
# 显示图表
plt.show()

数据集

站点编号日期时刻进站人数出站人数
1552015-10-0172941215
1552015-10-01811284067
1552015-10-01914413713
1552015-10-011020432976
1552015-10-011126783198
1552015-10-011225152804
1552015-10-011323132396
1552015-10-011417672680
1552015-10-011518732202
1552015-10-011618602350
1552015-10-011723481987
1552015-10-011811361982
1552015-10-011921251442
1552015-10-01201066930
1552015-10-01211273441
1552015-10-0122999323
1552015-10-012449194
1552015-10-027130648
1552015-10-0284962611
1552015-10-0297402284
1552015-10-021015371893
1552015-10-021119422232
1552015-10-021224831866
1552015-10-021315541607
1552015-10-021415171826
1552015-10-021515261784
1552015-10-021615391883
1552015-10-021720441784
1552015-10-021814001668
1552015-10-021920801292
1552015-10-0220949924
1552015-10-02211278427
1552015-10-0222660239
1552015-10-022310127
1552015-10-037118374
1552015-10-0384171363
1552015-10-0395681695
1552015-10-031014481781
1552015-10-031122591956
1552015-10-031223771724
1552015-10-031316921196
1552015-10-031415821488
1552015-10-031513091550
1552015-10-031615431685
1552015-10-031719481605
1552015-10-031814621683
1552015-10-031922181339
1552015-10-03201409731
1552015-10-03211347360
1552015-10-0322541209
1552015-10-03241792
1552015-10-047122280
1552015-10-0484021286
1552015-10-0496201684
1552015-10-041014471598
1552015-10-041121481644
1552015-10-041225631529
1552015-10-041315811171
1552015-10-041416291381
1552015-10-041516531580
1552015-10-041616901713
1552015-10-041723231761
1552015-10-041817191774
1552015-10-041930061412
1552015-10-04201687781
1552015-10-04211410421
1552015-10-0422868297
1552015-10-042462240
1552015-10-057123326
1552015-10-0584201192
1552015-10-0596901750
1552015-10-051011821455
1552015-10-051121791482
1552015-10-051224531491
1552015-10-051316351409
1552015-10-051416901579
1552015-10-051516801652
1552015-10-051617581908
1552015-10-051725101717
1552015-10-051815001856
1552015-10-051927541440
1552015-10-05201359761
1552015-10-05211437407
1552015-10-0522947315
1552015-10-0524111211
1552015-10-06797279
1552015-10-0684671196
1552015-10-0696701763
1552015-10-061013071314
1552015-10-061124631537
1552015-10-061228581568
1552015-10-061321101395
1552015-10-061423441559
1552015-10-061520811634
1552015-10-061619171648
1552015-10-061729351481
1552015-10-061816651469
1552015-10-061928621354
1552015-10-06201383920
1552015-10-06212423464
1552015-10-06221533300
1552015-10-0624104175
1552015-10-077112311
1552015-10-0784651296
1552015-10-0797901725
1552015-10-071015571385
1552015-10-071131211498
1552015-10-071233021723
1552015-10-071330681739
1552015-10-071428101852
1552015-10-071525601895
1552015-10-071624422063
1552015-10-071739321910
1552015-10-071821181907
1552015-10-071933081583
1552015-10-072015301060
1552015-10-07212897602
1552015-10-07221389319
1552015-10-0724144219
1552015-10-087169314
1552015-10-0886001573
1552015-10-0895822452
1552015-10-08109621468
1552015-10-081118251201
1552015-10-081213051207
1552015-10-081314221196
1552015-10-081414701532
1552015-10-081514241343
1552015-10-081613421242
1552015-10-081721861096
1552015-10-081812981297
1552015-10-081919021090
1552015-10-08201192608
1552015-10-08211128362
1552015-10-0822333274
1552015-10-082421197
1552015-10-097122222
1552015-10-0984941219
1552015-10-0995342236
1552015-10-09109221394
1552015-10-091118141206
1552015-10-091212021246
1552015-10-091312351071
1552015-10-091412811431
1552015-10-091513571323
1552015-10-091611861340
1552015-10-091717501392
1552015-10-091813801550
1552015-10-091920391307
1552015-10-09201080673
1552015-10-0921829284
1552015-10-0922323177
1552015-10-09241389
1552015-10-107106234
1552015-10-108463964
1552015-10-1095191942
1552015-10-101010641394
1552015-10-101117971256
1552015-10-101214131079
1552015-10-101313361132
1552015-10-101413441320
1552015-10-101513121371
1552015-10-101612921484
1552015-10-101717791466
1552015-10-101813251621
1552015-10-101921961838
1552015-10-10201411971
1552015-10-10211004379
1552015-10-1022379239
1552015-10-102424133
1552015-10-117124210
1552015-10-118417869
1552015-10-1196371350
1552015-10-111014451316
1552015-10-111121851168
1552015-10-111219311118
1552015-10-111314681195
1552015-10-111412611338
1552015-10-111512431539
1552015-10-111614851875
1552015-10-111720521975
1552015-10-111813102127
1552015-10-111919911865
1552015-10-112013461071
1552015-10-11211132434
1552015-10-1122434252
1552015-10-112421165
1552015-10-127154274
1552015-10-1285961200
1552015-10-1295212288
1552015-10-121011501578
1552015-10-121118481340
1552015-10-121213971193
1552015-10-121314111146
1552015-10-121412711318
1552015-10-121511611363
1552015-10-121611421316
1552015-10-121715221228
1552015-10-121812951186
1552015-10-121918861080
1552015-10-12201084600
1552015-10-1221813264
1552015-10-1222320166
1552015-10-122423120
1552015-10-137122218
1552015-10-1384671055
1552015-10-1394232008
1552015-10-131010651342
1552015-10-131115471203
1552015-10-13121339998
1552015-10-131312551003
1552015-10-131411641161
1552015-10-131510751281
1552015-10-131611061289
1552015-10-131715891217
1552015-10-131813031211
1552015-10-131919351102
1552015-10-13201173640
1552015-10-1321802276
1552015-10-1322320181
1552015-10-13242369
1552015-10-147113211
1552015-10-148427987
1552015-10-1494751999
1552015-10-141010191437
1552015-10-141116511197
1552015-10-141213491106
1552015-10-141313311022
1552015-10-141412851171
1552015-10-141510991206
1552015-10-141611491249
1552015-10-141715831077
1552015-10-141813851147

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

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

相关文章

Transformer Based Multi-view Network for Mammographic Image Classification

“C-Tk” means “Classification Token” 辅助信息 作者未提供代码

【python从入门到精通】-- 第四战:语句汇总

🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…

C++:函数重载和引用

hello,各位小伙伴,本篇文章跟大家一起学习C:函数重载和引用,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 函数重载1.函数重载的概念为什么C支持函数重载 引用引用的概念引…

C++中发送HTTP请求的方式

一,简介 使用C编程发送HTTP请求通常需要使用第三方的HTTP库或框架。在C中,有几个受欢迎的HTTP库可供选择,例如Curl、Boost.Beast和cpp-httplib。另外,也可以自己实现socket来发送http请求 二、使用Curl库发送HTTP请求 1. 确认当…

day60 动态规划part17

这两题看了自己写的笔记还不懂的话,看看这个up的思路就行: https://space.bilibili.com/111062940/search/video?keyword%E5%9B%9E%E6%96%87 647. 回文子串 中等 提示 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回…

微带线特性阻抗快速计算---根据介质板参数和特性阻抗得到线宽(Matlab代码)

微带线特性阻抗快速计算—根据介质板参数和特性阻抗得到线宽(Matlab代码) 参考:https://blog.csdn.net/weixin_45811090/article/details/130045689 《射频电路理论与设计》第2版 黄玉兰著 《射频电路设计——理论与应用》第二版 Reinhold L…

STC89C51学习笔记(三)

STC89C51学习笔记(三) 综述:本文讲述了通过51单片机控制LED闪烁、流水灯、按键控制LED亮灭、按键控制LED实现二进制、按键控制LED左右移。 一、LED 1.LED闪烁 1)原理 如果要实现LED闪烁,不可以直接先使LED亮&…

兼顾性能的数据倾斜处理方案

目录 前言 一、场景描述 二、常见的优化方法 2.1 Mapjoin 2.2 特殊值/空值打散 2.3 热点值打散,副表呈倍数扩散 2.4 热点数据单独处理/SkewJoin 2.5 方案总结 三、Distmapjoin 3.1 核心思路 3.2 代码实现 3.3 真实效果 四、方案总结 文章主要是介绍在支…

手把手教你从入门到精通C# MES通信

前言 我们在上位机软件开发的时候,经常需要与客户的MES系统进行通信,一般与MES系统通信需要实现的功能如下: 1、通过输入员工号来获取登录MES系统的权限 2、上传设备检测的OK/NG结果给MES系统; 3、上传设备生产过程中的异常信息给MES系统; 4、上传设备生产过程中的数据,…

(arxiv2401) CrossMAE

作者团队来自加州大学伯克利分校(UC Berkeley)和加州大学旧金山分校(UCSF)。论文主要探讨了在MAE的解码中,图像patch之间的依赖性,并提出了一种新的预训练框架 CrossMAE。 论文的主要贡献包括: …

【C++入门】关键字、命名空间以及输入输出

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

Ant Design Vue table固定列失效问题解决

问题描述:项目中封装好的公共table组件,基于Ant Design Vue table封装;使用中,用到了列固定,但是没生效,找了好久的原因。。。最后是因为外层容器标签导致; 解决方法:如果a-table组件…

Windows系统安装OpenSSH结合VS Code远程ssh连接Ubuntu【内网穿透】

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-AwzyR2lkHKjD9HYl {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

【吊打面试官系列】Redis篇 - Redis单进程单线程好处?

大家好,我是锋哥。今天分享关于 【Redis单进程单线程好处?】面试题,希望对大家有帮助; Redis单进程单线程好处? 代码更清晰,处理逻辑更简单 不用去考虑各种锁的问题,不存在加锁释放锁操作&…

使用简单MLP实现0-9数字识别,数据集为MNIST

简介 需求: 基于pytorch实现简单MLP,完成数字识别,采用MNIST手写数字作为数据集,MNIST:有6万张训练图片,1万张测试图片训练结束后,随机取3张测试图片,展示模型的预测结果和真实图片…

策略模式图

策略模式 小小的图解 主要的三个角色 Strategy—抽象策略角色ConcreateStrategy—具体策略角色Context—上下文角色 封装了对具体策略的调用可以使用set的依赖注入也可以使用构造方法 核心是上下文角色 只要调用上下文角色就行,实现解耦 策略 工厂 将上下文角…

【java探索之旅】逻辑控制掌握 顺序结构 分支语句

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、逻辑控制的概念二、顺序结构三、分支结构3.1 if语句3.2 if习题巩固3.3 细节注意项…

TR3 - Transformer算法详解

目录 文本输入处理词向量位置向量 编码器 EncoderSelf-Attention多头注意力机制残差连接 解码器 Decoder线性层与Softmax损失函数总结与心得体会 这周来看一下Transformer是怎么将文本转换成向量,然后又输入到模型处理并得到最终的输出的。 文本输入处理 词向量 …

递归算法解读

递归(Recursion)是计算机科学中的一个重要概念,它指的是一个函数(或过程)在其定义中直接或间接地调用自身。递归函数通过把问题分解为更小的相似子问题来解决原问题,这些更小的子问题也使用相同的解决方案&…

2024-04-05 问AI: 介绍一下深度学习中的Leaky ReLU函数

文心一言 Leaky ReLU(Leaky Rectified Linear Unit)函数是深度学习领域中的一种激活函数,主要用于解决ReLU(Rectified Linear Unit)函数在负值区域为零的问题。ReLU函数在输入为正时保持原样,而在输入为负…