python - 截断字符串并替换为“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
推荐阅读
- kubernetes - 如何计算 K8S 集群中 prometheus server pod 所需的持久化卷大小?
- java - 我需要验证用户输入的字符串的索引是否有效
- android - Google Play(问题:目标受众不准确)
- javascript - 在多对多关系中按资源 id 获取所有嵌套资源
- sql - 用另一个字符替换一个字符
- sql - 我正在将一些字段数据从另一个表复制到新创建的表中
- oracle - 如何从命令行调用 ODI 场景并等待其执行
- python - 'TypeError: dict 最多期望 1 个参数,得到 4'
- android - 审查 apk 期间 google 控制台上的错误消息“此版本不符合 Google Play 64 位要求”
- android - 在 SQLite 的一个查询中访问和删除一行