以下の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のbusiness_codeを処理しますが、business_codesの長さが<と>6で異なることがわかりました。状態ごとにデータの状態を検証しています。各状態は、business_codeの長さが異なります(IL-6 len、OH-8len)。すべてのコードは均等に埋める必要があります。したがって、ILのコードが10の場合、000010などが生成されます。すべての例外を処理する必要があります。コマンドライン解析パラメーター(argparse)、およびstring.zfillを使用します。