내 비즈니스 코드에 패딩이 필요한 모든 상황을 다루기 위해 아래 Python 함수를 변경하고 싶습니다. string.zfill
파이썬 함수는이 예외를 처리합니다. 주어진 너비에 도달 할 때까지 왼쪽으로 패딩하지만 이전에는 사용하지 않았습니다.패딩 함수 (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 I는 business_codes 길이 < 다를 것을 발견하고 있는데> 제 I 상태로 데이터 상태를 검증하고있다. 각 주마다 business_code 길이가 다릅니다 (IL - 6 len, OH - 8 len). 모든 코드는 균등하게 패딩되어야합니다. 따라서 10 인 IL의 코드는 000010을 생성해야합니다. 모든 예외를 처리해야합니다. 명령 줄 구문 분석 매개 변수 (argparse) 및 string.zfill 사용.
'정확히 string.zfill'와 문제가 무엇입니까? – Cairnarvon
제 문제는 TypeError가 발생했습니다. zfill()은 정확히 1 개의 인수 (0)를 취합니다. 사용자가 비즈니스 코드의 길이를 묻는 구문 분석 매개 변수를 전달합니다 (parser.add_argument ('-b', help = '비즈니스 코드 길이 지정, businessformat = args.d). string.zfill (def formatBusinessCodes (code) :, str.zfill (code))을 사용하여 인수를 가져 오십시오. – Tone