首页 > 解决方案 > Python:在单元格内的字符串中添加 0/零

问题描述

我在一个单元格中有这个示例数据:

EmployeeID

2016-CT-1028
2016-CT-1028
2017-CT-1063
2017-CT-1063
2015-CT-948
2015-CT-948

所以,我的问题是如何0在这些数据中添加2015-CT-948它以使其像这样2015-CT-0948。我试过这段代码:

pattern = re.compile(r'(\d\d+)-(\w\w)-(\d\d\d)')
newlist = list(filter(pattern.match, idList))

只是为了获得匹配的正则表达式模式,然后添加0withzfill()但它不起作用。拜托,有人能给我一个想法,我该怎么做。无论如何我可以在正则表达式或熊猫中做到这一点。谢谢!

标签: pythonregexexcelpandas

解决方案


这是一种使用方法zfill

前任:

import pandas as pd

def custZfill(val):
    val = val.split("-")
    #alternative split by last -
    #val = val.rsplit("-",1)
    val[-1] = val[-1].zfill(4)
    return "-".join(val)

df = pd.DataFrame({"EmployeeID": ["2016-CT-1028", "2016-CT-1028", 
                                  "2017-CT-1063", "2017-CT-1063", 
                                  "2015-CT-948", "2015-CT-948"]})
print(df["EmployeeID"].apply(custZfill))

输出:

0    2016-CT-1028
1    2016-CT-1028
2    2017-CT-1063
3    2017-CT-1063
4    2015-CT-0948
5    2015-CT-0948
Name: EmployeeID, dtype: object

推荐阅读