首页 > 解决方案 > 熊猫替换功能 - 插入垫 0 到 3 个数字

问题描述

在 Pandas (df) 中,包含以下字符串的列。当字符串中的数字 <100 时寻找填充 0

频率
XXX100KHz
XYC200KHz
YYY80KHz
YYY50KHz

至:

频率
XXX100KHz
XYC200KHz
YYY 0 80KHz
YYY 0 50KHz

以下功能不起作用,因为\1then0将不起作用,因为\10不存在。

df.replace({'Freq':'^([A-Za-z]+)(\d\d[A-Za-z]*)$'},{'Freq':r'\1**0**\2'},regex=True, inplace=True)

标签: pythonpandasdataframe

解决方案


尝试:

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

推荐阅读