微信扫码
添加专属顾问
我要投稿
利用DeepSeek和Power BI轻松拆分复杂的中国地址数据,无需编码经验。 核心内容: 1. 传统地址拆分方法的局限性和复杂性 2. DeepSeek和Power BI的结合优势及其操作简便性 3. 通过具体案例展示如何使用DeepSeek和Power BI处理复杂地址数据
在日常数据处理中,我们常遇到这样的场景:
北京市海淀区中关村南大街5号
传统方案(如简单按字符截取)不仅代码复杂,还需人工维护大量规则。而今天,我们将借助 DeepSeek + Power BI(Power Query 部分),实现中国地址智能解析,覆盖所有行政规划特殊性!
Power Query 功能强大,但上手却并不简单,尤其是对于零基础的小白用户,很多时候:
DeepSeek 的出现解决了这些痛点:
如果让你在 PQ 中将以下地址拆分为省、市、区/县和详细地址四列,你会怎么做?
我们看看 DeepSeek 能不能帮我们来解决这个问题。
DeepSeek 给出了完整的代码和操作步骤,按照指示在 Power Query 中运行这些代码。新建一个查询,在高级编辑器中粘贴 DeepSeek 给出的代码。
运行之后发现直辖市和特别行政区部分出现了报错。
直辖市区字段为空白,详细地址错误,特别行政区区和详细地址都发生报错。
让 DeepSeek 修改一下,先修改直辖市部分,直接告诉 DeepSeek 直辖市部分报错即可。
修改之后直辖市部分正确。
最后再来让 DeepSeek 修改一下特别行政区部分的错误。
将 Power Query 中的代码修改一下,所有地址都可以正确显示了。
整个过程不需要我们去写 M 语言代码,Power Query 小白也搞定!完整代码如下,修改对应的地址源数据即可。
let
Source = 地址,
// 提取省
AddProvince = Table.AddColumn(
Source,
"省",
each (
let
addr = [地址],
sortedProvinces = List.Sort(
{
"内蒙古自治区",
"广西壮族自治区",
"西藏自治区",
"宁夏回族自治区",
"新疆维吾尔自治区",
"北京市",
"天津市",
"上海市",
"重庆市",
"河北省",
"山西省",
"辽宁省",
"吉林省",
"黑龙江省",
"江苏省",
"浙江省",
"安徽省",
"福建省",
"江西省",
"山东省",
"河南省",
"湖北省",
"湖南省",
"广东省",
"海南省",
"四川省",
"贵州省",
"云南省",
"陕西省",
"甘肃省",
"青海省",
"台湾省",
"香港特别行政区",
"澳门特别行政区"
},
(x, y) => Value.Compare(Text.Length(y), Text.Length(x))
),
matchedProvince = List.First(List.Select(sortedProvinces, each Text.StartsWith(addr, _)))
in
matchedProvince
)
),
// 判断是否直辖市
AddIsMunicipality = Table.AddColumn(
AddProvince,
"是否直辖市",
each List.Contains({"北京市", "天津市", "上海市", "重庆市"}, [省])
),
// 判断是否特别行政区
AddIsSAR = Table.AddColumn(
AddIsMunicipality,
"是否特别行政区",
each List.Contains({"香港特别行政区", "澳门特别行政区"}, [省])
),
// (兼容特别行政区)
AddCity = Table.AddColumn(
AddIsSAR,
"市",
each
if [是否直辖市] then
[省]
elseif [是否特别行政区] then
null // 特别行政区无市级单位
else
(
let
remaining1 = Text.ReplaceRange([地址], 0, Text.Length([省]), ""),
suffixes = {"自治州", "地区", "盟", "市"},
positions = List.Transform(
suffixes,
each Text.PositionOf(remaining1, _, Occurrence.First)
),
adjusted = List.Transform(
{0 .. 3},
each if positions{_} >=0then positions{_} + Text.Length(suffixes{_}) else null
),
validPositions = List.RemoveNulls(adjusted),
firstPos =if List.IsEmpty(validPositions) then null else List.Min(validPositions),
city =if firstPos = null then null else Text.Start(remaining1, firstPos)
in
city
)
),
// 提取区(关键修正点)
AddDistrict = Table.AddColumn(
AddCity,
"区",
each
let
// 根据行政类型计算剩余地址
remainingAfterProvince = Text.ReplaceRange([地址], 0, Text.Length([省]), ""),
remaining2 =if [是否直辖市] or [是否特别行政区] then remainingAfterProvince // 特别行政区/直辖市无需替换市级部分
else Text.ReplaceRange(remainingAfterProvince, 0, Text.Length([市]), ""),
// 区级提取逻辑(需扩展特别行政区区级后缀)
suffixes = {"自治县", "自治旗", "县", "区", "市", "旗", "半岛", "离岛"}, // 新增港澳常见后缀
positions = List.Transform(suffixes, each Text.PositionOf(remaining2, _, Occurrence.First)),
adjusted = List.Transform(
{0 .. 5},
each if positions{_} >=0then positions{_} + Text.Length(suffixes{_}) else null
),
validPositions = List.RemoveNulls(adjusted),
firstPos =if List.IsEmpty(validPositions) then null else List.Min(validPositions),
district =if firstPos = null then null else Text.Start(remaining2, firstPos)
in
district
),
// 提取详细地址
AddDetail = Table.AddColumn(
AddDistrict,
"详细地址",
each
let
base = Text.ReplaceRange([地址], 0, Text.Length([省]), ""),
remaining =
if [是否特别行政区] then
Text.ReplaceRange(base, 0, Text.Length([区]), "") // 特别行政区直接跳过市级
elseif [是否直辖市] then
Text.ReplaceRange(base, 0, Text.Length([区]), "")
else
Text.ReplaceRange(
Text.ReplaceRange(base, 0, Text.Length([市]), ""),
0,
Text.Length([区]),
""
)
in
remaining
)
in
AddDetail
过去,我们做数据分析的时候,总感觉数据处理任务复杂难懂,尤其是像客户地址这种包含特殊情况的字段拆分,经常会耗费大量精力,最终效果还可能差强人意:
借助 DeepSeek,原本复杂繁琐的数据拆分工作变得前所未有的简单:
赶快开启你的智能数据分析之旅吧,让 AI 帮你释放创造力,助你迅速实现从“小白”到数据高手的跃迁,轻松在数据时代占据优势!从此数据处理不再是数据专家的专利,每个人都能轻松完成数据分析,解放你的双手,把时间精力投入到更重要的业务决策之中。
2025,ABI革命,人人可用。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-18
破茧成蝶:传统J2EE应用无缝升级AI原生
2025-04-18
Text2SQL 比赛实战心得:从难点到解决方案
2025-04-17
揭秘agent+MCP架构首次落地企业智能数据场景案例
2025-04-17
DataAgent是最容易落地的Agent场景?
2025-04-16
易用+高效+开放!实测卡奥斯智能体:让AI真正懂生产
2025-04-14
工业领域的Manus,为什么是一家杭州公司跑出来了?
2025-04-14
MindsDB :借 MCP 一句话打通20+数据库,大模型秒变SQL专家!
2025-04-13
如何优化 AskTable AI 生成 SQL 的准确率
2024-10-14
2024-06-20
2024-10-09
2025-02-04
2024-06-14
2024-06-16
2024-06-14
2024-05-31
2024-07-24
2025-02-09