python - 如何替换最后 2 个字符(如果在 python 中可用)

标签 python pandas

解析并替换字符串中的最后 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/

相关文章:

python - 如何将这些命令集成到 python 中?

python - Cv2 中的 cvtcolor - 无属性

python - 如何在 Python 中创建 ramdisk?

python - 对多个 DataFrame 执行操作的最佳方法是什么?

python - Pandas:将 pytz.FixedOffset 应用于系列

python - 计算 pandas 数据框中定义组中的元素数量

python - 测试请求中的延迟时间

python - 从 MultiIndex 中选择特定级别

python - 如何连接两个不同长度的单列数据帧以便更新 DateTime 索引?

python - 将基于 pandas python 中重复列的数据集分组为列表