我想更改下面的 Python 函数以涵盖我的 business_code 需要填充的所有情况。Python 函数处理这个string.zfill
异常,向左填充,直到达到给定的宽度,但我以前从未使用过它。
#function for formating business codes
def formatBusinessCodes(code):
""" Function that formats business codes. Pass in a business code which will convert to a string with 6 digits """
busCode=str(code)
if len(busCode)==1:
busCode='00000'+busCode
elif len(busCode)==2:
busCode='0000'+busCode
else:
if len(busCode)==3:
busCode='000'+busCode
return busCode
#pad extra zeros
df2['business_code']=df2['business_code'].apply(lambda x: formatBusinessCodes(x))
businessframe['business_code']=businessframe['business_code'].apply(lambda x: formatBusinessCodes(x))
financialframe['business_code']=financialframe['business_code'].apply(lambda x: formatBusinessCodes(x))
上面的代码处理长度为 6 的业务代码,但我发现业务代码的长度 < 和 > 6 不同。我正在逐个状态验证数据状态。每个州的业务代码长度都不同(IL - 6 len,OH - 8 len)。所有代码必须均匀填充。因此,10 的 IL 代码应该产生 000010 等。我需要处理所有异常。使用命令行解析参数 (argparse) 和 string.zfill。