告别熬夜抠Excel!用Gemini 3.1 Flash秒级清洗万条杂乱数据,成本仅需几毛钱

周五下午5点半,你正准备收拾电脑下班,开启美好的周末。

突然,工作群闪烁,老板丢来一个名为 Q3潜在客户线索_汇总版.xlsx 的文件,并附带一句:“这里有一万条销售从各个渠道扒下来的客户数据,格式有点乱。你辛苦一下,把里面的姓名、手机号、省市区和具体地址分别提取出来,做成标准表格,下周一早会我要看数据漏斗。”

你点开表格,瞬间倒吸一口凉气。这一万条数据,长这样:

“王大拿,发货到广东省深圳市南山区科技园88号,电话是13812345678,记得周末别派送,找不到人就打他老婆电话13987654321”
“李总 13700000000 北京朝阳建国路CBD 麻烦开专票”
“收件人:赵小姐,地址:上海市浦东新区陆家嘴环路,联系方式:150-1111-2222(微信同号)”

没有规律,没有固定格式,所有的信息像一锅大杂烩一样挤在一个单元格里。

如果你用传统方法:

  • Excel分列/函数:根本无从下手,因为逗号和空格的位置完全随机。
  • 写正则表达式(Regex):提取手机号还行,但要从这种毫无逻辑的自然语言里精准提取“省市区”和“姓名”,哪怕是资深程序员也得挠掉几把头发。

同事可能已经在苦哈哈地搜索“如何用Python写复杂的正则提取地址”了,准备熬个大夜。但作为关注了8848AI的读者,你只需端起咖啡喝一口,然后打开一个新工具,几秒钟后,准时打卡下班。

今天,我们就来实测如何利用 Gemini 3.1 Flash 极速且白菜价的特性,让任何人(哪怕不懂代码)都能将上万条“垃圾数据”在几秒内转化为标准资产。

---

震撼对比:杂乱无章 VS 结构化输出

在教你怎么做之前,我们先直观感受一下大模型在处理非结构化数据时的“降维打击”。

我们准备了10000条高度混乱的模拟客户数据,直接喂给 Gemini 3.1 Flash。

😱 清洗前(原始垃圾数据)

| 原始文本 | | :--- | | 张三,发货到北京市朝阳区建国路88号,电话是13812345678,记得周末别派送 | | 深圳南山粤海街道办李四13911112222顺丰到付 | | 王五的件,寄到杭州余杭未来科技城,号码137-8888-9999,包装严实点 |

😍 清洗后(AI秒级输出的标准资产)

| 姓名 | 手机号 | 省份 | 城市 | 区/县 | 详细地址 | 备注 | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | 张三 | 13812345678 | 北京市 | 北京市 | 朝阳区 | 建国路88号 | 周末别派送 | | 李四 | 13911112222 | 广东省 | 深圳市 | 南山区 | 粤海街道办 | 顺丰到付 | | 王五 | 13788889999 | 浙江省 | 杭州市 | 余杭区 | 未来科技城 | 包装严实点 |

看到这里,你可能会惊叹:“卧槽,连‘粤海街道办’属于广东深圳南山区这种隐含信息,它都能自动补全?”

没错,这就是大模型的语义理解能力。它不是在做“机械匹配”,而是在“阅读理解”。

本次实测的核心数据如下:
  • 任务量:10000条杂乱文本
  • 耗时:约 45 秒(采用并发请求)
  • 总花费:约 0.6 元人民币

这就是为什么我们强烈推荐使用 Gemini 3.1 Flash。在AI模型家族中,“Flash”版本的定位就是“天下武功唯快不破”——响应极速,且API调用成本低到几乎可以忽略不计。用来做这种高并发的脏活累活,简直是绝配。

---

保姆级实操教程:从小白到进阶

不管你是完全不懂技术的业务人员,还是懂一点Python的进阶玩家,下面的教程都能让你立刻上手。

🟢 小白篇(Prompt 提示词流)

如果你只有几百条数据,或者完全不想碰代码,可以直接使用AI对话框来完成。

第一步:准备好你的 Prompt(提示词)

在处理数据清洗时,Prompt的质量直接决定了输出的准确率。不要只说“帮我提取信息”,要给AI设定严格的规则。

你可以直接复制下面这个万能数据清洗Prompt模板

角色设定:你是一个资深的数据清洗专家。

>

任务目标:我将给你提供一批杂乱的客户信息文本,请你从中提取出关键信息,并严格按照我要求的格式输出。

>

提取字段要求
1. 姓名:提取收件人姓名。
2. 手机号:提取11位手机号码,去除中间的横杠或空格。
3. 省份、城市、区/县:根据地址信息自动补全标准的行政区划(如文本中只有“朝阳”,需补全为“北京市-北京市-朝阳区”)。
4. 详细地址:去除省市区后的剩余地址。
5. 备注:客户提出的特殊要求,如果没有则填“无”。

>

输出格式限制
严格以标准的 CSV 格式输出,包含表头:姓名,手机号,省份,城市,区县,详细地址,备注
不要输出任何解释性废话,不要包含Markdown代码块符号,直接输出CSV文本内容。

>

以下是需要处理的数据
[在此处粘贴你的几十条乱码数据]
第二步:去哪里跑这个Prompt?

直接打开 8848AI平台 (api.884819.xyz)

注册非常简单,只需要用户名+密码即可注册,不需要邮箱验证。注册后平台会直接赠送5元体验额度。

平台内置了AI对话功能,你不需要配置任何环境,直接在对话框里选好模型,把上面的Prompt和数据粘贴进去,按下回车,干净整洁的CSV数据就生成了。你可以直接复制保存为 .csv 文件,用Excel打开即可。

---

🔴 进阶篇(Python + API 并发流)

如果你面临的是真正的“一万条数据”,在对话框里分批粘贴显然不现实。这时候,我们就需要用Python调用API,让机器自己“唰唰唰”地跑。

很多小伙伴看到这里可能会问:“我想跟着做,但是我搞不到官方的 API Key,网络环境也不通怎么办?”

别担心,为了让大家零门槛跑通这段代码,我推荐使用国内可以直接访问的平台 api.884819.xyz。它完全兼容 OpenAI 的调用格式,你只需要在代码里把 base_url 替换一下,填入在这个平台获取的 Key,不用折腾复杂的网络环境,直接就能跑满 Gemini 3.1 Flash 的并发!不仅如此,平台上还有完全免费的国产顶级模型(如 Deepseek R1/V3、通义千问 Qwen3 等)供你调用。

下面是开箱即用的 Python 并发处理代码:

1. 安装必要的库

在终端运行:

pip install openai pandas tqdm
2. 核心处理脚本

新建一个 clean_data.py 文件,复制以下代码:

import pandas as pd

from openai import OpenAI

import concurrent.futures

from tqdm import tqdm

import json

初始化客户端,强烈建议使用8848AI接口,国内直连,稳定防封

client = OpenAI(

api_key="你的8848AI平台_API_KEY", # 在 api.884819.xyz 获取

base_url="https://api.884819.xyz/v1" # 核心替换这一行即可

)

定义单批次处理函数

def process_batch(text_list):

prompt = f"""

你是一个数据清洗专家。请从以下文本列表中提取信息:姓名, 手机号, 省, 市, 区, 详细地址, 备注。

必须严格以JSON数组格式返回,格式如下:

[

{{"name": "张三", "phone": "138...", "province": "北京市", "city": "北京市", "district": "朝阳区", "address": "建国路88号", "note": "无"}}

]

不要输出任何其他废话,只要JSON。

待处理文本:

{json.dumps(text_list, ensure_ascii=False)}

"""

try:

response = client.chat.completions.create(

model="gemini-3.1-flash", # 使用速度最快、成本极低的 Flash 模型

messages=[{"role": "user", "content": prompt}],

temperature=0.1 # 降低温度,保证输出的稳定性

)

# 清理可能存在的 markdown 标记

result_str = response.choices[0].message.content.strip()

if result_str.startswith("

json"):

result_str = result_str[7:-3]

return json.loads(result_str)

except Exception as e:

print(f"处理出错: {e}")

return []

模拟读取你的万条数据 (假设你有一个 raw_data.csv)

df = pd.read_csv("raw_data.csv")

raw_texts = df['杂乱文本列'].tolist()

这里为了演示,我们生成100条测试数据

raw_texts = ["张三 北京朝阳建国路88号 13800000000 别周末送"] * 100

将数据分批,每批处理20条(避免单次Token超载)

batch_size = 20

batches = [raw_texts[i:i + batch_size] for i in range(0, len(raw_texts), batch_size)]

all_results = []

使用多线程并发处理,这就是“秒级”的秘诀

print(f"开始处理,共 {len(batches)} 批次...")

with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:

# 结合 tqdm 显示进度条

results = list(tqdm(executor.map(process_batch, batches), total=len(batches)))

for res in results:

all_results.extend(res)

保存为干净的 Excel

final_df = pd.DataFrame(all_results)

final_df.to_csv("cleaned_data.csv", index=False, encoding='utf-8-sig')

print("数据清洗完成!已保存为 cleaned_data.csv")

``

运行这段代码,你会看到终端里进度条“唰唰唰”地前进,那种几万条数据瞬间被结构化的解压感,绝对会让你大呼过瘾。

---

避坑指南与总结

在实际处理大规模数据时,大模型偶尔也会有“小脾气”(比如幻觉或漏数据)。为了保证100%的成功率,请记住以下两个避坑心法:

1. 控制单次请求的条数(Batch Size):不要一次性把一万条数据塞给一个请求。虽然 Gemini 3.1 Flash 的上下文窗口很大,但单次要求输出的 JSON 过长可能会导致截断。建议每批次处理 20-50 条,利用 Python 的多线程并发来提速。

2. 强制 JSON 约束:在 Prompt 中,一定要给出标准的 JSON 示例,并加上一句“不要输出任何解释性废话”。这在代码解析阶段至关重要,能避免 json.loads()` 报错。

总结一下:

过去,我们需要花几个小时甚至几天去抠的数据,现在利用 Gemini 3.1 Flash 加上简单的并发代码,几十秒就能搞定,而且成本不到一块钱。AI 时代,拉开人与人之间差距的,不再是“你会不会写复杂的正则”,而是“你会不会用 AI 这个免费的超级实习生”。

别犹豫了,立刻去 api.884819.xyz 注册个账号(记得,连邮箱都不用验证),用赠送的额度,拿你们公司的历史数据试一把,感受一下这种降维打击的快感吧!

等等,这就结束了吗?

今天我们用 Gemini 3.1 Flash 把一万条“垃圾数据”变成了金灿灿的“结构化资产”。但是,数据光清洗干净就够了吗?当然不是。清洗数据只是第一步,老板最终要看的是商业洞察

下一篇文章,我将教大家如何把这份刚刚清洗好的数据,直接“喂”给一个完全由 AI 驱动的数据分析 Agent。你不需要写一行代码,也不需要懂透视表,让 AI 自动生成一份精美的数据可视化图表和深度商业分析报告!

关注我,我们下期见,一起把 AI 生产力榨干!

---

本文由8848AI原创,转载请注明出处。关注8848AI,带你从零开始学AI。

#AI教程 #Gemini #数据清洗 #Python自动化 #人工智能 #8848AI #Prompt技巧 #办公效率