Python编写代码,实现对表格里面的部分数据用*替换,比如电话号码、家庭住址等
时间: 2023-12-14 20:36:45 浏览: 78
可以使用正则表达式来实现对表格里面的部分数据用*替换,具体步骤如下:
1. 导入re模块,用于正则表达式的操作。
2. 读取表格文件,可以使用pandas库中的read_excel()函数读取Excel文件或者使用csv库中的reader()函数读取CSV文件。
3. 定义正则表达式,匹配需要替换的数据,比如电话号码、家庭住址等。
4. 遍历表格中的每一行数据,使用sub()函数将匹配到的数据替换为*。
5. 将替换后的表格保存为新文件,可以使用pandas库中的to_excel()函数保存为Excel文件或者使用csv库中的writer()函数保存为CSV文件。
下面是一个示例代码:
```python
import re
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 定义正则表达式,匹配电话号码和家庭住址
pattern = re.compile(r'(\d{3})\d{4}(\d{4})|(\d{3}-\d{4}-\d{4})|(\d{3}\.\d{4}\.\d{4})|([^\u4e00-\u9fa5]{6})')
# 遍历表格中的每一行数据,并将匹配到的数据替换为*
for i, row in df.iterrows():
for j, cell in enumerate(row):
if isinstance(cell, str):
df.iloc[i, j] = pattern.sub('****', cell)
# 保存替换后的表格为新文件
df.to_excel('data_replaced.xlsx', index=False)
```
在上面的代码中,使用正则表达式`(\d{3})\d{4}(\d{4})|(\d{3}-\d{4}-\d{4})|(\d{3}\.\d{4}\.\d{4})|([^\u4e00-\u9fa5]{6})`匹配电话号码和家庭住址,其中`\d{3}`表示匹配3个数字,`\d{4}`表示匹配4个数字,`|`表示或,`[^\u4e00-\u9fa5]{6}`表示匹配6个非中文字符。
遍历表格中的每一行数据时,使用iterrows()函数获取每一行的索引和数据,然后使用enumerate()函数获取每个单元格的索引和数据。如果单元格数据是字符串类型,则使用sub()函数将匹配到的数据替换为*,并将替换后的数据赋值给原表格中相应的位置。最后使用to_excel()函数将替换后的表格保存为新文件。
阅读全文