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

一个一个输入太慢了
前两天写的容积率检查程序,每次只能检查一个地块。
输入用地类型 → 输入容积率 → 看结果 → 再来一遍……
如果手里有100个地块的数据,难道要重复操作100次?
当然不。今天的目标:让程序批量处理,一口气检查完所有地块。
思路:让数据“说话”,而不是手动输入
手动输入的问题在于:人慢、易错、不能复用。
更好的方式是:把数据整理成表格,让程序自动读取、自动判断、自动输出。
这个表格,就是Excel。
今天的程序要做三件事:
-
读取Excel:拿到地块清单(用地类型、容积率)
-
批量判断:逐个检查容积率是否合规
-
输出结果:在原来的表格上增加一列“是否合规”
准备工作:一个示例Excel文件
假设我们有一个地块数据.xlsx,内容如下:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我们希望程序输出:
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
完整代码

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

打开生成的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 批量处理
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我的一点小感悟
以前用GIS做类似检查或者批量赋值,需要反复使用字段计算器,或者用模型构建器循环。现在用Python + pandas,几行代码就搞定了,而且结果可以直接输出Excel,发给别人看。
这就是编程的威力:把重复的工作交给电脑,把时间留给思考。
📌 今日学习笔记:
学到了什么:
-
安装pandas库,输入pip install openpyxl,也要安装openpyxl 库
-
用
pandas.read_excel()读取Excel -
用
df.apply()批量处理每一行 -
用
lambda写匿名函数 -
用
df.to_excel()保存结果
升级内容:
-
从单个输入 → 批量处理
-
从屏幕输出 → Excel文件输出
用时: 1小时
📢 我是老李,35岁规划师,从零开始学AI。
每天1小时,记录真实学习路。不求成为大神,只为多一条出路。
如果你也在传统行业或者对未来感到焦虑,如果你也想学点新东西但一直没有开始
点击关注,我们一起进步。
👇👇👇
夜雨聆风