数据分析——数据规范化

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

  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
  • 29
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在sklearn库中,数据预处理是指对原始数据进行转换和调整,以使其适用于机器学习模型的训练和评估。sklearn库提供了多种数据预处理的方法和函数。 其中,常用的数据预处理方法包括: - 特征选择:通过选择最具有代表性的特征,减少特征维度,提高模型性能。可以使用SelectKBest方法配合chi2方法进行特征选择,例如:X_fschi = SelectKBest(chi2, k=300).fit_transform(X_fsvar, y)。 - 特征转换:将原始特征转换成更适合模型使用的形式,如使用主成分分析(PCA)进行特征降维。sklearn提供了PCA方法,可以使用sklearn.decomposition.PCA类进行主成分分析。 - 数据规范化:通过缩放原始数据,使其具有相似的尺度,避免某些特征对模型训练的影响过大。sklearn提供了StandardScaler类和MinMaxScaler类进行数据规范化。 - 缺失值处理:处理缺失值的方法包括删除带有缺失值的样本、用均值或中位数替代缺失值等。sklearn提供了Imputer类进行缺失值处理。 - 数据标准化:将原始数据转化为均值为0,方差为1的标准正态分布。sklearn提供了StandardScaler类进行数据标准化。 这些方法和函数可以通过调用sklearn库中相应的模块和类进行使用。参考文献提供了关于sklearn库的使用教程和示例,可以详细了解sklearn库中的数据预处理方法的使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [机器学习sklearn工具——sklearn中的数据预处理和特征工程](https://blog.csdn.net/weixin_39736118/article/details/128517125)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [数据挖掘库sklearn的使用教程和demo](https://download.csdn.net/download/weixin_67336587/85527941)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张謹礧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值