首页 > 解决方案 > 截断字符串并替换为“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 的数量取决于字符串的长度。这尤其给我带来了麻烦。如果它们的长度都相同,这将容易得多。

标签: pythonpandasdataframe

解决方案


您可以使用.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

推荐阅读