我想更改下面的Python函数,以涵盖我的business_code需要填充的所有情况。 Python函数处理这个异常,填充到左边,直到达到给定的宽度,但我从来没有使用过它。填充函数(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的business_code但我发现的business_codes在长度<变化和> 6。我被状态验证数据状态。每个州的商业代码长度都不相同(IL - 6 len,OH - 8 len)。所有代码必须均匀填充。所以IL为10的代码应该产生000010等,我需要处理所有异常。使用命令行解析参数(argparse)和string.zfill。
用'究竟string.zfill'什么问题了吗? – Cairnarvon 2013-02-25 23:17:50
我的问题是我得到一个TypeError:zfill()只需要1个参数(0给定)。我传入一个解析参数,询问用户业务代码的长度(parser.add_argument(' - b',help ='指定业务代码的长度',businessformat = args.d)。我不确定如何使用string.zfill引入参数(def formatBusinessCodes(code):, str.zfill(code)) – Tone 2013-02-26 15:10:53