[英]Truncate string and replace with "X" Python Pandas DataFrame
我有一个df,例如:
d = {'col1': [11111111, 2222222]]}
df = pd.DataFrame(data=d)
df
col1
0 11111111
1 2222222
我需要删除前四个字符之前的所有内容并替换为“X”之类的内容,这样新的 df 将是
d = {'col1': [XXXX1111, XXX2222]]}
df = pd.DataFrame(data=d)
df
col1
0 XXXX1111
1 XXX2222
python 的新手仍然可以分割最后四个字符。 但是无法用 X 替换其他所有内容。
此外,字符串可以是不同的长度。 所以 X 的数量取决于字符串的长度。 这尤其给我带来了麻烦。 如果它们的长度都相同,这将容易得多。
您可以将.str.replace()
与正则表达式一起使用:
df.col1 = df.col1.astype(str).str.replace(
r"^(.*)(.{4})$", lambda g: "X" * len(g.group(1)) + g.group(2)
)
print(df)
印刷:
col1
0 XXXX1111
1 XXX2222
df['col1'] = list(map(lambda l: 'X'*(l-4), df['col1'].astype(str).apply(len))) + df['col1'].astype(str).str[-4:]
map()
是重复X
n-4
次,其中n
是col1
中每个元素的长度。
.str[-4:]
是获取col1
列的最后 4 个字符
# print(df)
col1
0 XXXX1111
1 XXX2222
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.