如何在日志记录输出中屏蔽pandas dataframe列?

时间:2019-06-12 20:58:55

标签: python pandas security logging

我必须记录一些包含敏感信息的熊猫数据框输出。我宁愿没有此信息在日志中或在终端中打印。

我通常编写一个小函数,该函数可以接受字符串并使用正则表达式对其进行屏蔽,但是我在使用数据帧进行操作时遇到了麻烦。无论如何,是否有掩盖数据框中的敏感信息列以供记录?我下面尝试的方法更改了数据框,使该列无法使用。

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

我想要发生的是*****掩码仅存在于日志记录中,而不存在于其余操作中。

1 个答案:

答案 0 :(得分:1)

如果要保留原始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