python 中的正则表达式替换列值的最后两位数字,如果最后两位数字为 30,则将其替换为 50

Regular expression in python to replace last two digits of a column value where if last two digits are 30 then replace it with 50

我有以下数据框

abc=pd.DataFrame()

abc['Col_A']=[1900,1200,1230,1130,1300,0330]
abc

    Col_A
0   1900
1   1200
2   1230
3   1130
4   1300
5   0330

从上面的数据框中,我想在看到 30 的地方替换最后两位数字,我想用 50 替换它

我的预期输出如下。

    Col_A
0   1900
1   1200
2   1250
3   1150
4   1300
5   0350

如果不是正则表达式以外的任何其他内容也会有所帮助。 提前致谢

假设您的 Col_A 值实际上是字符串,那么我们可以在这里使用 str.replace

df["Col_A"] = df["Col_A"].str.replace(r'30$', '50')

请注意,像 0330 这样的值只会在 字符串 而非整数的情况下保留其前导零,后者实际上没有任何前导零。

要用数字列覆盖相同的逻辑,请使用:

df["Col_A"] = np.where(df["Col_A"] % 100 == 30, df["Col_A"] + 20, df["Col_A"])