数据规范化是数据分析中的一个重要步骤,其目的在于确保数据的一致性和可比性,提高数据质量和分析结果的准确性。以下是一些数据规范化的常见方法和技术:
- 数据清洗:此步骤主要清除数据中的重复项、空格、格式错误等,确保数据的准确性和完整性。
- 数据转换:数据转换涉及将不同格式或单位的数据统一化,如转换日期格式、货币单位或度量单位,以便进行更有效的比较和分析。
- 数据规范化:这一步主要是将文本数据转换为统一的术语和格式。例如,设定规则、使用词典或将数据转换为特定的数据格式,以确保数据的一致性和可读性。
- 数据映射:当处理来自不同数据源的数据时,数据映射特别有用。它将不同数据源的数据映射到一个标准化的模板中,确保数据的一致性和可比性。
- 数据匹配:这一步骤主要是将同一实体的不同表述进行匹配。例如,在处理个人信息时,可能会将“小李”和“李小”这样的不同姓名表述匹配为同一实体。
- 数据验证:验证数据是否符合预设的规则或标准,确保数据的准确性和有效性。
在实际应用中,数据规范化有多种方法,例如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 |