# add zeros to each portion of ndc10 to fit 5,4,2 ndc11 0-filled format
a = [f"0{x[0]}" if len(x[0]) == 4 else x[0] for x in list(ndcd.NDC10.str.split("-"))]
b = [f"0{x[1]}" if len(x[1]) == 3 else x[1] for x in list(ndcd.NDC10.str.split("-"))]
c = [f"0{x[2]}" if len(x[2]) == 1 else x[2] for x in list(ndcd.NDC10.str.split("-"))]
# rejoin sections to full ndc11
ndcd["NDC11"] = ["".join(x) for x in list(zip(a, b, c))]
2条答案
按热度按时间yzckvree1#
您可以使用
参见regex demo。* 详情 *:
^
-字符串的开头(?:
-第一个非捕获组的开始:\d{4}-\d{4}-\d{2}
-四位数,-
,四位数,-
,两位数|
-或\d{5}-
-五位数,-
(?:
-第二个非捕获组的开始:\d{3}-\d{2}
-三位数,-
,两位数|
-或\d{4}-\d{1,2}
-四位数,-
和一位或两位数)
-第二个非捕获组的结束)
-第一个非捕获组的结束。$
-字符串结束。mkshixfv2#
在pandas DataFrame中使用列表解析的方法: