乐于分享
好东西不私藏

从手动输入到批量处理,一个Excel搞定100个地块

从手动输入到批量处理,一个Excel搞定100个地块

一个一个输入太慢了

前两天写的容积率检查程序,每次只能检查一个地块。

输入用地类型 → 输入容积率 → 看结果 → 再来一遍……

如果手里有100个地块的数据,难道要重复操作100次?

当然不。今天的目标:让程序批量处理,一口气检查完所有地块。

思路:让数据“说话”,而不是手动输入

手动输入的问题在于:人慢、易错、不能复用。

更好的方式是:把数据整理成表格,让程序自动读取、自动判断、自动输出。

这个表格,就是Excel

今天的程序要做三件事:

  1. 读取Excel:拿到地块清单(用地类型、容积率)

  2. 批量判断:逐个检查容积率是否合规

  3. 输出结果:在原来的表格上增加一列“是否合规”

准备工作:一个示例Excel文件

假设我们有一个地块数据.xlsx,内容如下:

地块编号
用地类型
容积率
A-01
居住用地
1.8
A-02
居住用地
0.8
A-03
工业用地
1.2
A-04
教育用地
1.2
A-05
商业用地
2.0

我们希望程序输出:

地块编号
用地类型
容积率
是否合规
A-01
居住用地
1.8
合规
A-02
居住用地
0.8
低于下限1.00,不合规
A-03
工业用地
1.2
合规
A-04
教育用地
1.2
高于上限1.00,不合规
A-05
商业用地
2.0
合规

完整代码

运行效果

运行程序后,控制台输出:

打开生成的Excel文件,里面已经多了一列“是否合规”。

新知识点拆解

1. pandas库

  • pandas是Python里处理表格数据的“神器”

  • pd.read_excel()读取Excel,返回DataFrame

  • df.to_excel()保存DataFrame到Excel

  • df.apply()对每一行或每一列应用函数

2. lambda匿名函数

可以理解为“临时的小函数”,只用一次,不需要用

  • 类似def定义

  • row是当前行的数据,row["用地类型"]就是取这一行的“用地类型”列

3. axis参数

  • axis=1表示“按行操作”,每一行是一个样本

  • axis=0表示“按列操作”(默认)

4. 字符串格式化回顾

  • {:.2f}表示保留两位小数的浮点数

对比:手动输入 vs 批量处理

对比项
手动输入版
批量处理版
处理100个地块
需要操作100次
一次运行
数据来源
键盘输入
Excel文件
结果保存
屏幕打印
Excel文件
可重复性
每次重新输入
改Excel重新跑
适合场景
临时、少量检查
正式、大量数据

我的一点小感悟

以前用GIS做类似检查或者批量赋值,需要反复使用字段计算器,或者用模型构建器循环。现在用Python + pandas,几行代码就搞定了,而且结果可以直接输出Excel,发给别人看。

这就是编程的威力:把重复的工作交给电脑,把时间留给思考。

📌 今日学习笔记:

学到了什么:

  • 安装pandas库,输入pip install openpyxl,也要安装openpyxl 库

  • pandas.read_excel()读取Excel

  • df.apply()批量处理每一行

  • lambda写匿名函数

  • df.to_excel()保存结果

升级内容:

  • 从单个输入 → 批量处理

  • 从屏幕输出 → Excel文件输出

用时: 1小时


📢 我是老李,35岁规划师,从零开始学AI。

每天1小时,记录真实学习路。不求成为大神,只为多一条出路。

如果你也在传统行业或者对未来感到焦虑,如果你也想学点新东西但一直没有开始

点击关注,我们一起进步。

👇👇👇