如何用单行代码去除数据集中多列的前导零?
一行代码去除IP列的前导零(多列批量处理)
直接通过pandas的批量字符串操作,一行代码就能完成Subnet和Mask两列的前导零去除:
excl_merged[["Subnet", "Mask"]] = excl_merged[["Subnet", "Mask"]].str.replace(r"\b0+\B", "", regex=True)
说明
这个写法是你单列处理逻辑的扩展:只需将目标列名放在列表中,pandas会自动对每一列执行相同的正则替换操作。
处理后结果
执行代码后,数据集会变成:
Subnet Mask 0 10.15.176.0 255.255.255.128 1 10.15.177.0 255.255.255.192 2 10.15.178.64 255.255.255.192 3 10.15.179.0 255.255.255.128 4 10.15.180.0 255.255.255.0 5 10.15.181.0 255.255.255.224 6 10.15.182.0 255.255.254.0 7 10.15.183.0 255.255.254.0 8 10.15.184.0 255.255.255.0 9 10.15.185.0 255.255.255.0
你用的正则\b0+\B很精准:只会匹配IP段中非结尾的前导零,既去掉了冗余的零,又保留了单个零(比如.000变成.0),完全符合IP地址的格式要求。
内容的提问来源于stack exchange,提问作者K3Mi
相关产品推荐
相关产品推荐

