数据框中有一个列(‘A’)
,其长度为3到8。
对于长度为6的字符,如果O在字符串的第2、4或6个字符中,则需要用0(零)替换O。
例如:
OOMOOO to O0M0O0
O4MOP8 to O4M0P8
H4M2SO to H4M2S0
以下代码仅适用于第六个字符:(长度为6时的最后一个字符)
df['A'] = df[(df['A'].str.len() == 6)]['A'].str.replace('O$', '0')
有什么想法可以实现第二和第四职位的目标吗?
答案 0 :(得分:3)
您可以使用Apply尝试类似的操作
def replace_chars(x):
return "".join(["0" if chr == "O" and ind%2 ==0 else chr for ind, chr in enumerate(x)])
m = df['A'].str.len() == 6
df.loc[m, 'A'] = df.loc[m, 'A'].apply(replace_chars)
编辑:感谢jezrael
,更改分配语法以避免链接