数据分析——数据规范化

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

  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()

数据集

站点编号 日期 时刻 进站人数 出站人数
155 2015-10-01 7 294 1215
155 2015-10-01 8 1128 4067
155 2015-10-01 9 1441 3713
155 2015-10-01 10 2043 2976
155 2015-10-01 11 2678 3198
155 2015-10-01 12 2515 2804
155 2015-10-01 13 2313 2396
155 2015-10-01 14 1767 2680
155 2015-10-01 15 1873 2202
155 2015-10-01 16 1860 2350
155 2015-10-01 17 2348 1987
155 2015-10-01 18 1136 1982
155 2015-10-01 19 2125 1442
155 2015-10-01 20 1066 930
155 2015-10-01 21 1273 441
155 2015-10-01 22 999 323
155 2015-10-01 24 49 194
155 2015-10-02 7 130 648
155 2015-10-02 8 496 2611
155 2015-10-02 9 740 2284
155 2015-10-02 10 1537 1893
155 2015-10-02 11 1942 2232
155 2015-10-02 12 2483 1866
155 2015-10-02 13 1554 1607
155 2015-10-02 14 1517 1826
155 2015-10-02 15 1526 1784
155 2015-10-02 16 1539 1883
155 2015-10-02 17 2044 1784
155 2015-10-02 18 1400 1668
155 2015-10-02 19 2080 1292
155 2015-10-02 20 949 924
155 2015-10-02 21 1278 427
155 2015-10-02 22 660 239
155 2015-10-02 23 10 127
155 2015-10-03 7 118 374
155 2015-10-03 8 417 1363
155 2015-10-03 9 568 1695
155 2015-10-03 10 1448 1781
155 2015-10-03 11 2259 1956
155 2015-10-03 12 2377 1724
155 2015-10-03 13 1692 1196
155 2015-10-03 14 1582 1488
155 2015-10-03 15 1309 1550
155 2015-10-03 16 1543 1685
155 2015-10-03 17 1948 1605
155 2015-10-03 18 1462 1683
155 2015-10-03 19 2218 1339
155 2015-10-03 20 1409 731
155 2015-10-03 21 1347 360
155 2015-10-03 22 541 209
155 2015-10-03 24 17 92
155 2015-10-04 7 122 280
155 2015-10-04 8 402 1286
155 2015-10-04 9 620 1684
155 2015-10-04 10 1447 1598
155 2015-10-04 11 2148 1644
155 2015-10-04 12 2563 1529
155 2015-10-04 13 1581 1171
155 2015-10-04 14 1629 1381
155 2015-10-04 15 1653 1580
155 2015-10-04 16 1690 1713
155 2015-10-04 17 2323 1761
155 2015-10-04 18 1719 1774
155 2015-10-04 19 3006 1412
155 2015-10-04 20 1687 781
155 2015-10-04 21 1410 421
155 2015-10-04 22 868 297
155 2015-10-04 24 62 240
155 2015-10-05 7 123 326
155 2015-10-05 8 420 1192
155 2015-10-05 9 690 1750
155 2015-10-05 10 1182 1455
155 2015-10-05 11 2179 1482
155 2015-10-05 12 2453 1491
155 2015-10-05 13 1635 1409
155 2015-10-05 14 1690 1579
155 2015-10-05 15 1680 1652
155 2015-10-05 16 1758 1908
155 2015-10-05 17 2510 1717
155 2015-10-05 18 1500 1856
155 2015-10-05 19 2754 1440
155 2015-10-05 20 1359 761
155 2015-10-05 21 1437 407
155 2015-10-05 22 947 315
155 2015-10-05 24 111 211
155 2015-10-06 7 97 279
155 2015-10-06 8 467 1196
155 2015-10-06 9 670 1763
155 2015-10-06 10 1307 1314
155 2015-10-06 11 2463 1537
155 2015-10-06 12 2858 1568
155 2015-10-06 13 2110 1395
155 2015-10-06 14 2344 1559
155 2015-10-06 15 2081 1634
155 2015-10-06 16 1917 1648
155 2015-10-06 17 2935 1481
155 2015-10-06 18 1665 1469
155 2015-10-06 19 2862 1354
155 2015-10-06 20 1383 920
155 2015-10-06 21 2423 464
155 2015-10-06 22 1533 300
155 2015-10-06 24 104 175
155 2015-10-07 7 112 311
155 2015-10-07 8 465 1296
155 2015-10-07 9 790 1725
155 2015-10-07 10 1557 1385
155 2015-10-07 11 3121 1498
155 2015-10-07 12 3302 1723
155 2015-10-07 13 3068 1739
155 2015-10-07 14 2810 1852
155 2015-10-07 15 2560 1895
155 2015-10-07 16 2442 2063
155 2015-10-07 17 3932 1910
155 2015-10-07 18 2118 1907
155 2015-10-07 19 3308 1583
155 2015-10-07 20 1530 1060
155 2015-10-07 21 2897 602
155 2015-10-07 22 1389 319
155 2015-10-07 24 144 219
155 2015-10-08 7 169 314
155 2015-10-08 8 600 1573
155 2015-10-08 9 582 2452
155 2015-10-08 10 962 1468
155 2015-10-08 11 1825 1201
155 2015-10-08 12 1305 1207
155 2015-10-08 13 1422 1196
155 2015-10-08 14 1470 1532
155 2015-10-08 15 1424 1343
155 2015-10-08 16 1342 1242
155 2015-10-08 17 2186 1096
155 2015-10-08 18 1298 1297
155 2015-10-08 19 1902 1090
155 2015-10-08 20 1192 608
155 2015-10-08 21 1128 362
155 2015-10-08 22 333 274
155 2015-10-08 24 21 197
155 2015-10-09 7 122 222
155 2015-10-09 8 494 1219
155 2015-10-09 9 534 2236
155 2015-10-09 10 922 1394
155 2015-10-09 11 1814 1206
155 2015-10-09 12 1202 1246
155 2015-10-09 13 1235 1071
155 2015-10-09 14 1281 1431
155 2015-10-09 15 1357 1323
155 2015-10-09 16 1186 1340
155 2015-10-09 17 1750 1392
155 2015-10-09 18 1380 1550
155 2015-10-09 19 2039 1307
155 2015-10-09 20 1080 673
155 2015-10-09 21 829 284
155 2015-10-09 22 323 177
155 2015-10-09 24 13 89
155 2015-10-10 7 106 234
155 2015-10-10 8 463 964
155 2015-10-10 9 519 1942
155 2015-10-10 10 1064 1394
155 2015-10-10 11 1797 1256
155 2015-10-10 12 1413 1079
155 2015-10-10 13 1336 1132
155 2015-10-10 14 1344 1320
155 2015-10-10 15 1312 1371
155 2015-10-10 16 1292 1484
155 2015-10-10 17 1779 1466
155 2015-10-10 18 1325 1621
155 2015-10-10 19 2196 1838
155 2015-10-10 20 1411 971
155 2015-10-10 21 1004 379
155 2015-10-10 22 379 239
155 2015-10-10 24 24 133
155 2015-10-11 7 124 210
155 2015-10-11 8 417 869
155 2015-10-11 9 637 1350
155 2015-10-11 10 1445 1316
155 2015-10-11 11 2185 1168
155 2015-10-11 12 1931 1118
155 2015-10-11 13 1468 1195
155 2015-10-11 14 1261 1338
155 2015-10-11 15 1243 1539
155 2015-10-11 16 1485 1875
155 2015-10-11 17 2052 1975
155 2015-10-11 18 1310 2127
155 2015-10-11 19 1991 1865
155 2015-10-11 20 1346 1071
155 2015-10-11 21 1132 434
155 2015-10-11 22 434 252
155 2015-10-11 24 21 165
155 2015-10-12 7 154 274
155 2015-10-12 8 596 1200
155 2015-10-12 9 521 2288
155 2015-10-12 10 1150 1578
155 2015-10-12 11 1848 1340
155 2015-10-12 12 1397 1193
155 2015-10-12 13 1411 1146
155 2015-10-12 14 1271 1318
155 2015-10-12 15 1161 1363
155 2015-10-12 16 1142 1316
155 2015-10-12 17 1522 1228
155 2015-10-12 18 1295 1186
155 2015-10-12 19 1886 1080
155 2015-10-12 20 1084 600
155 2015-10-12 21 813 264
155 2015-10-12 22 320 166
155 2015-10-12 24 23 120
155 2015-10-13 7 122 218
155 2015-10-13 8 467 1055
155 2015-10-13 9 423 2008
155 2015-10-13 10 1065 1342
155 2015-10-13 11 1547 1203
155 2015-10-13 12 1339 998
155 2015-10-13 13 1255 1003
155 2015-10-13 14 1164 1161
155 2015-10-13 15 1075 1281
155 2015-10-13 16 1106 1289
155 2015-10-13 17 1589 1217
155 2015-10-13 18 1303 1211
155 2015-10-13 19 1935 1102
155 2015-10-13 20 1173 640
155 2015-10-13 21 802 276
155 2015-10-13 22 320 181
155 2015-10-13 24 23 69
155 2015-10-14 7 113 211
155 2015-10-14 8 427 987
155 2015-10-14 9 475 1999
155 2015-10-14 10 1019 1437
155 2015-10-14 11 1651 1197
155 2015-10-14 12 1349 1106
155 2015-10-14 13 1331 1022
155 2015-10-14 14 1285 1171
155 2015-10-14 15 1099 1206
155 2015-10-14 16 1149 1249
155 2015-10-14 17 1583 1077
155 2015-10-14 18 1385 1147

相关推荐

  1. 数据分析-概率分布

    2024-04-06 09:44:03       57 阅读
  2. NLP入门——数据预处理:编码规范化

    2024-04-06 09:44:03       24 阅读
  3. 数据分析 — Numpy 数组处理

    2024-04-06 09:44:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-06 09:44:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-06 09:44:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-06 09:44:03       87 阅读
  4. Python语言-面向对象

    2024-04-06 09:44:03       96 阅读

热门阅读

  1. 不同阻抗组合类型时,机器人阻抗是什么?

    2024-04-06 09:44:03       36 阅读
  2. 【办公软件】开发常用网站

    2024-04-06 09:44:03       39 阅读
  3. linux扩展正则表达式()

    2024-04-06 09:44:03       41 阅读
  4. mysql 常见数据处理 dml

    2024-04-06 09:44:03       34 阅读
  5. 每天学习一个Linux命令之ln

    2024-04-06 09:44:03       38 阅读
  6. 【无标题】

    2024-04-06 09:44:03       37 阅读
  7. es6的一些方法

    2024-04-06 09:44:03       40 阅读