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"])
我有以下数据框
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"])