python - 熊猫替换功能 - 插入垫 0 到 3 个数字
问题描述
在 Pandas (df) 中,包含以下字符串的列。当字符串中的数字 <100 时寻找填充 0
频率 |
---|
XXX100KHz |
XYC200KHz |
YYY80KHz |
YYY50KHz |
至:
频率 |
---|
XXX100KHz |
XYC200KHz |
YYY 0 80KHz |
YYY 0 50KHz |
以下功能不起作用,因为\1
then0
将不起作用,因为\10
不存在。
df.replace({'Freq':'^([A-Za-z]+)(\d\d[A-Za-z]*)$'},{'Freq':r'\1**0**\2'},regex=True, inplace=True)
解决方案
尝试:
df["Freq"] = df["Freq"].str.replace(
r"(?<=\D)\d{1,2}(?=KHz)",
lambda g: "{:0>3}".format(g.group()),
regex=True,
)
print(df)
印刷:
Freq
0 XXX100KHz
1 XYC200KHz
2 YYY080KHz
3 YYY050KHz
推荐阅读
- node.js - 如果传递了无效标志,如何让 Yargs 退出?
- python - 检测多个像素并在 Python 中并行单击它们的更快方法?
- javascript - 如何在用户脚本中下载文件的前 X 个字节?
- gps - 智能手机的位置检测方法和 U-blox GPS 模块有什么区别?
- python - 在嵌套 Python 字典中搜索键
- java - 如何在没有 Spring 的情况下将 javascript 资源导入 thymeleaf 模板?
- python - 如何修复sklearn中的随机化
- apache-spark - 谓词下推在 spark/hive 视图表中不起作用
- vue.js - 如何使用 Vue2 创建和挂载阴影元素?
- python - Python如何在使用with..for线模式时在行尾连接文本