Python如何批量筛选荷兰CBS数据库中所有GM开头的市政区域数据
荷兰CBS数据库市政区域数据批量筛选方案
cbsodata接口的filters参数支持OData查询语法,你可以用字符串匹配规则直接筛选所有符合格式的市政编码,无需手动录入所有GM开头的编码。
最简实现(匹配所有GM开头的编码)
直接使用startswith函数匹配RegioS字段前缀即可:
import pandas as pd import cbsodata # 下载所有GM开头市政区域的指定数据 data = pd.DataFrame( cbsodata.get_data('70072ned', filters="startswith(RegioS, 'GM')", select=['RegioS', 'Vrouwen_3', 'Mannen_2'])) print(data.head())
精准匹配(仅筛选GM+4位数字格式的编码)
如果要避免匹配到GM开头但长度不符合要求的非市政编码,可以增加长度校验,GM+4位数字总长度为6位:
import pandas as pd import cbsodata # 仅筛选符合GM+4位数字规则的市政区域数据 data = pd.DataFrame( cbsodata.get_data('70072ned', filters="startswith(RegioS, 'GM') and length(RegioS) eq 6", select=['RegioS', 'Vrouwen_3', 'Mannen_2'])) print(data.head())
原理说明:cbsodata库的filters参数完全兼容OData v4的查询表达式,支持字符串函数、逻辑运算符、比较运算符等操作,无需手动枚举所有符合条件的编码值。
内容的提问来源于stack exchange,提问作者dennis vlaar
相关产品推荐
相关产品推荐

