解析并替换字符串中的最后 2 个特定字符(如果可用)。
例如: 0 = O,5 = S,1=I
输入数据:
Col1
AZBYCCCD0
NZBY23HG1
BZYCQ05CO
YODZ225H0
NaN
CS45DRNZQ
预期输出:
Col1
AZBYCCCDO
NZBY23HGI
BZYCQ05CO
YODZ225HO
NaN
CS45DRNZQ
我一直在尝试使用:
repl = {'0':'O','1':'I'}
df['Col1'] = df['Col1'].astype(str).str[7:].replace(repl, regex=True)
但是上面的脚本不起作用。
请提出建议
最佳答案
您看到的问题是您仅选择最后两个字符,因此该函数仅返回最后两个字符。您需要将原始部分与替换部分合并。
df = pd.DataFrame([
'AZBYCCCD0',
'NZBY23HG1',
'BZYCQ05CO',
'YODZ225H0',
pd.np.NaN,
'CS45DRNZQ',], columns = ['Col1'])
repl = {'0':'O','1':'I'}
df['Col1'].astype(str).str[:7] + df['Col1'].astype(str).str[7:].replace(repl, regex=True)
按预期返回:
0 AZBYCCCDO
1 NZBY23HGI
2 BZYCQ05CO
3 YODZ225HO
4 nan
5 CS45DRNZQ
Name: Col1, dtype: object
关于python - 如何替换最后 2 个字符(如果在 python 中可用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67482718/