python - 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))
只是为了获得匹配的正则表达式模式,然后添加0
withzfill()
但它不起作用。拜托,有人能给我一个想法,我该怎么做。无论如何我可以在正则表达式或熊猫中做到这一点。谢谢!
解决方案
这是一种使用方法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
推荐阅读
- swiftui - SwiftUI NavigationLink isActive 不适用于动态列表
- sql-server - 每年按任命状态返回的员工人数
- c - 为什么这个递归函数不起作用?
- javascript - 在 ReactJS 中为组件添加特定的验证
- c++ - 从nodejs获取c ++中的参数
- yaml - 无法将 EKS 节点组加入 AWS CloudFormation 中的现有 EKScluster
- laravel - 使用 laravel 在 goDaddy 中上传大文件
- android - 如何在没有 GUI 的情况下启动 Android 操作系统,例如没有桌面的 linux?
- google-cloud-bigtable - Google Bigtable 删除时间范围
- amazon-web-services - 您可以使用 Step Functions 在 Sagemaker 中启动和执行 Jupyter Notebook 吗?