pandas清洗与合并北京天津地区数据的完整流程

一颗松果
一颗松果
发布时间:2026-10-12| 1人浏览过
原创

数据清洗是确保后续分析质量的关键环节,主要解决不完整、错误和重复三类问题。本案例演示如何利用 Python 的 pandas 库自动读取 CSV 文件,依次执行重复项过滤、空值均值填充、数值型字段箱线图异常检测,最后将两地表格安全合并。整套流程可快速复用于同类政务或业务数据预处理任务。

基于Pandas的地区数据清洗与预处理流程

数据清洗的任务是过滤不符合要求的数据,将结果交由业务部门确认为丢弃还是修正后抽取。与问卷审核不同,录入后的数据清理通常由计算机自动完成,核心目标是处理缺失值、重复值与异常值。

第1步:导入数据并清除重复记录

目的:读取原始 CSV 文件,识别因人工录入或系统抓取产生的完全重复行,并为后续清理建立干净的基础表。

操作:使用 pandas.read_csv() 分别加载北京与天津数据,调用 duplicated() 生成布尔序列标记重复项。返回 True 的行即为冗余数据,确认后使用 drop_duplicates() 执行原位去重,查看去除后的行列数变化以验证完成状态。

# 读取北京地区的数据
import pandas as pd
with open("北京地区信息.csv") as f:
    file_data_bjinfo = pd.read_csv(f)
# 读取天津地区的数据
with open("天津地区信息.csv") as f:
    file_data_tjinfo = pd.read_csv(f)

# 检测file_data_bjinfo中的数据,返回True的表示是重复数据
dup_bj = file_data_bjinfo.duplicated()
print(dup_bj)

# 检测file_data_tjinfo中的数据,返回True的表示是重复数据
dup_tj = file_data_tjinfo.duplicated()
print(dup_tj)

# 对北京地区的数据,删除重复值
drop_dup_bj = file_data_bjinfo.drop_duplicates()
print(drop_dup_bj)

第2步:定位缺失值并使用均值填充

目的:检查目标表中是否存在空缺字段,优先采用统计学中最具代表性的集中趋势指标进行修复,避免直接删除整行导致样本结构失真。

操作:通过 pd.isnull() 输出缺失矩阵定位空白单元格。选取关键指标列计算算术平均数,使用格式化字符串严格保留两位小数并转为浮点类型,构建键值对字典传入 fillna() 完成列级映射填补,运行后原空缺位置将替换为计算出的均值。

# 检测天津地区的数据是否存在缺失值
print(pd.isnull(file_data_tjinfo))
# 计算天津地区常住人口的平均数,设置float类型,并保留两位小数
avg = float("{:.2f}".format(file_data_tjinfo['常住人口(万人)'].mean()))
# 以字典映射的方式进行填充
values = {'常住人口(万人)':avg}
file_data_tjinfo = file_data_tjinfo.fillna(value=values)
print(file_data_tjinfo)

第3步:异常值检测与箱线图展示

目的:识别数值型字段(如行政面积、GDP、人口等)中的极端偏离值。箱线图能直观呈现四分位数分布与离群点,便于业务人员核对是否属于真实极值或录入笔误。

入口与配置:初始化 matplotlib 全局字体与环境设置,解决图表中文乱码与负号显示异常问题。随后直接在 DataFrame 对象上调用 boxplot() 渲染图形。

# 对北京地区信息进行异常值检测。并且用箱型图进行表示
from matplotlib import pyplot as plt 

plt.rcParams['font.family']=['STFangsong']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
file_data_bjinfo.boxplot()
plt.show()
北京地区数据箱线图,展示行政面积、人口与GDP等字段的分布区间及离群点
图1:北京市辖区各项指标的箱线分布,须状线外散点即为需人工复核的潜在异常值
# 对天津地区信息进行异常值检测。并且用箱型图进行表示
file_data_tjinfo.boxplot()
plt.show()
天津地区数据箱线图,反映各区县经济与人口规模的数据离散程度
图2:天津市辖区各项指标的箱线分布,可借此观察整体数据的偏态与波动范围

第4步:多区域数据集合并

目的:将清洗完毕的独立城市数据表整合为统一宽表,便于跨地域对比分析或报表汇总。

操作:调用 pd.concat() 沿行方向拼接。设置 join='inner' 仅保留共有的列名交集,axis=0 指定纵向堆叠数据,ignore_index=True 重置行索引以消除旧表累积的编号。执行后将输出一张包含两地所有已清洗记录的连续 DataFrame。

# 对两地数据进行合并
print(pd.concat([file_data_bjinfo,file_data_tjinfo],join='inner',axis=0,ignore_index=True))

以上就是利用pandas进行地区数据清洗与合并的详细内容,更多关于Python数据处理与数据分析的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。