使用 Tkinter 和 Python 建立数据集 K 匿名化系统

该系统允许用户选择数据文件,输入 K 值,并对数据进行 K 匿名化处理。最终输出处理后的数据,并提供原始数据的精确值范围。

步骤:

  1. **导入必要的库:**pythonimport tkinter as tkfrom tkinter import filedialogimport pandas as pd

  2. **创建 GUI 界面:**python# 创建主窗口root = tk.Tk()

文件路径file_path = ''

打开文件按钮def open_file(): global file_path file_path = filedialog.askopenfilename()

匿名化数据函数def anonymize_data(): global file_path k_value = k_value_entry.get() try: k = int(k_value) except ValueError: result_label.configure(text='k 值必须是整数!') return

# 检查文件是否存在    try:        data = pd.read_csv(file_path)    except FileNotFoundError:        result_label.configure(text='文件不存在!')        return

# K 匿名化处理    columns = list(data.columns)    for column in columns:        if column != 'ID':            data[column] = data[column].apply(lambda x: round(x / k) * k)

# 输出处理后的数据    output_file_path = file_path.split('.')[0] + '_anonymized.csv'    data.to_csv(output_file_path, index=False)

# 在界面中显示处理后的数据    result_label.configure(text=data.to_string())

# 将所有数据泛化处理并在处理后输出精确值    for column in columns:        if column != 'ID':            data[column] = data[column].apply(lambda x: str(round(x / k) * k) + '±' + str(k / 2))

# 在界面中显示处理后的数据和精确值    result_label.configure(text=data.to_string())

选择文件按钮file_button = tk.Button(root, text='选择文件', command=open_file)file_button.pack(pady=10)

输入 K 值的文本框k_value_label = tk.Label(root, text='输入 K 值:')k_value_label.pack()k_value_entry = tk.Entry(root)k_value_entry.pack()

确认按钮confirm_button = tk.Button(root, text='确认', command=anonymize_data)confirm_button.pack(pady=10)

处理后的数据和精确值result_label = tk.Label(root)result_label.pack()

运行 GUIroot.mainloop()

代码说明:

  • GUI 界面: 使用 Tkinter 库创建按钮和文本框,方便用户选择文件和输入 K 值。* 文件读取: 使用 filedialog 模块选择文件并使用 pandas 库读取数据。* K 匿名化处理: 遍历数据集中每个属性列,对非 ID 列进行 K 匿名化处理,将数据值四舍五入到最接近的 K 的倍数。* 数据输出: 将处理后的数据保存到新的 CSV 文件,并在 GUI 界面中显示。* 精确值输出: 对每个属性值进行泛化处理,添加 ± K/2 表示精度范围。* 错误处理: 对文件不存在、K 值不合法等情况进行处理,并提示用户。

使用说明:

  1. 运行 Python 代码。2. 点击 '选择文件' 按钮选择要处理的数据文件。3. 在 '输入 K 值' 文本框中输入 K 值。4. 点击 '确认' 按钮进行 K 匿名化处理。5. 处理后的数据将保存到一个名为 _anonymized.csv 的文件中,并在 GUI 界面中显示。

注意: 该代码仅供参考,您可能需要根据实际情况进行修

Python Tkinter 数据集 K 匿名化系统 -  实现数据泛化和精确值输出

原文地址: https://www.cveoy.top/t/topic/ojR5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录