python - 如何在日志输出中屏蔽熊猫数据框列?
问题描述
我必须记录一些包含敏感信息的熊猫数据框输出。我宁愿不在日志中包含此信息或在终端中打印。
我通常会编写一个小函数,它可以接受一个字符串并用正则表达式对其进行屏蔽,但我在使用数据帧时遇到了麻烦。无论如何,是否有为了记录而掩盖数据框中的一列敏感信息?我在下面尝试的方法更改了数据框,使该列无法使用。
def hide_by_pd_df_columns(dataframe,columns,replacement=None):
'''hides/replaces a pandas dataframe column with a replacement'''
for column in columns:
replacement = '*****' if replacement is None else replacement
dataframe[column] = replacement
return dataframe
我想要发生的是 ***** 掩码仅存在于日志记录中,而不存在于其余操作中。
解决方案
如果要保留原始 df,请确保df.copy数据框:
def hide_by_pd_df_columns(dataframe,columns,replacement=None):
'''hides/replaces a pandas dataframe column with a replacement'''
df=dataframe.copy()
for column in columns:
replacement = '*****' if replacement is None else replacement
df[column] = replacement
return df
推荐阅读
- r - 如何过滤列中包含少于 3 个空格的行?(右)
- python - 将字符串列表转换为唯一的 rgb 颜色
- visual-studio-code - VS Code 一段时间后自行重启 PC
- reactjs - 创建选择组件并希望将事件方法传递出去
- reactjs - 防止范围滑块处理程序相互交叉(material-ui/reactjs)
- java - 使用java在数据库中导入Excel文件
- thymeleaf - 如何设置模板路径
- javascript - 如何使 Handsontable 可用于我的 Laravel Blade 组件?
- android - 计费库 - 测试不同国家/地区的 InApp 订阅
- laravel - Laravel 关系搜索