数据处理:补全Excel导入后缺失前导零的CPF数据
修复CPF数据缺失的前导零
CPF的标准长度为11位,针对你遇到的前导零缺失问题,可以通过以下步骤处理:
- 将CPF列转为字符串类型:Excel导入时会把数字转为数值类型,丢失前导零,必须转为字符串才能保留补加的零。
- 补全前导零到11位:使用字符串的
zfill(11)方法,自动在左侧补零直到总长度达到11位,适配缺失1-2个前导零的情况。
整合你已有的代码,完整实现如下:
import pandas as pd # 读取Excel数据 cpfs = pd.read_excel('cpfs.xlsx') # 移除全零行 zeros = (cpfs != 0).any(axis=1) semZeros_cpfs = cpfs.loc[zeros] # 替换为实际的CPF列名,比如你的列叫'CPF'就改成'CPF' cpf_column = 'cpf' # 转为字符串,若存在小数点后缀(如数值转字符串后的.0)则移除 semZeros_cpfs[cpf_column] = semZeros_cpfs[cpf_column].astype(str).str.replace('.0', '', regex=False) # 补全前导零至11位 semZeros_cpfs[cpf_column] = semZeros_cpfs[cpf_column].str.zfill(11) # 保存修复后的数据到新文件 semZeros_cpfs.to_excel('cpfs_fixed.xlsx', index=False)
注意事项
- 确保替换代码中的
cpf_column为你实际的CPF列名。 - 如果导入的CPF数据存在其他格式问题(比如包含非数字字符),可以先通过
str.replace(r'\D', '', regex=True)清理掉非数字内容后再补零。
内容的提问来源于stack exchange,提问作者Amaro
相关产品推荐
相关产品推荐

