有没有办法混淆或屏蔽数据框列中的值?
Posted
技术标签:
【中文标题】有没有办法混淆或屏蔽数据框列中的值?【英文标题】:Is there a way to Obfuscate or Mask values in a Data Frame column? 【发布时间】:2019-09-12 01:36:46 【问题描述】:我正在尝试屏蔽 DataFrame 列中的所有 IP。我有一个包含 IP 地址的列的 DataFrame。出于隐私和安全原因,当 DataFrame 显示为表格或使用 Plotly 绘制图形时,我需要隐藏\屏蔽前 2 个八位字节。你认为哪种方法最好?我能想到的唯一方法是制作一个额外的列并使用 apply 函数将 IP 处理为 X.X.1.1 格式。
【问题讨论】:
df['masked_IP'] = df.IP.str.replace('^[^.]+\.[^.]+', 'x.x')
【参考方案1】:
您的方法似乎没有错。您还可以复制数据集并加密副本(以防您要保存新数据集)。
或者,如果您只是想保护隐私,您可以使用匿名技术。当您想保密时,它将在更大的项目中为您提供帮助,这里有一些链接
https://en.wikipedia.org/wiki/Data_anonymization https://iapp.org/resources/article/guide-to-basic-data-anonymization-techniques/
【讨论】:
【参考方案2】:import pandas as pd
from pandas.compat import StringIO
print(pd.__version__)
csvdata = StringIO("""IP
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13""")
df = pd.read_csv(csvdata)
df['IP'] = df['IP'].apply(lambda x: "X.X."+".".join(x.split('.')[2:4]))
print(df)
会产生
0.24.2
IP
0 X.X.1.10
1 X.X.1.11
2 X.X.1.12
3 X.X.1.13
这可能是在DataFrame
中“编辑”数据的最佳方式
【讨论】:
以上是关于有没有办法混淆或屏蔽数据框列中的值?的主要内容,如果未能解决你的问题,请参考以下文章