python中的正则表达式来替换列值的最后两位,如果最后两位是30,则用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"])

最新更新