【发布时间】:2019-06-13 05:32:53
【问题描述】:
我不得不记录一些包含敏感信息的 pandas 数据帧输出。我宁愿不在日志中包含此信息或在终端中打印。
我通常会编写一个小函数,它可以接受一个字符串并用正则表达式对其进行屏蔽,但我在使用数据帧时遇到了麻烦。无论如何,是否有为了记录而掩盖数据框中的一列敏感信息?我在下面尝试的方法更改了数据框,使该列无法使用。
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
我想要发生的是 ***** 掩码仅存在于日志记录中,而不存在于其余操作中。
【问题讨论】:
-
仅在您记录时调用该函数,对于其他所有内容,只需使用原始数据帧。
-
谢谢@Ricky Kim 我试过了。我还尝试从原始数据框中创建一个新的“仅显示”变量,然后在其上调用该函数。出于某种原因,如果我在代码中的任何位置调用数据帧上的函数,它会随处更改数据帧,即使在我调用它之前打印或记录的地方也是如此。
-
确保在制作“仅显示”变量时调用了df.copy
-
天啊。就是这样!谢谢!让它成为一个答案,我可以选择它。
标签: python pandas security logging