You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter中通过下拉框选择、按钮点击导入数据集并存为DataFrame

问题解决方案

问题根因

你遇到的加载失败核心原因是Tkinter按钮绑定的回调函数的返回值会被系统直接丢弃,你在dat_import()里return的DataFrame没有被赋值给可全局访问的存储变量,运行完函数就被内存回收了,自然无法后续调用。

修改后可运行代码

from tkinter import *
from sklearn import datasets
import pandas as pd

# 定义全局变量存储加载好的数据集
loaded_data = None

datasets = ["dataset 1", "dataset 2", "dataset 3", "dataset 4"]
master = Tk()

variable = StringVar(master)
variable.set(datasets[0])

data_options = OptionMenu(master, variable, *datasets)
data_options.pack(pady=10)

def dat_import():
    global loaded_data
    selected = variable.get()
    if selected == "dataset 1":
        loaded_data = pd.DataFrame(datasets.load_iris().data)
    elif selected == "dataset 2":
        loaded_data = pd.DataFrame(datasets.load_diabetes().data)
    elif selected == "dataset 3":
        loaded_data = pd.DataFrame(datasets.load_digits().data)
    elif selected == "dataset 4":
        # 注意:sklearn 1.2及以上版本已移除load_boston,如报错可替换为datasets.load_wine()
        loaded_data = pd.DataFrame(datasets.load_boston().data)
    # 可选:打印确认加载结果
    print(f"数据集{selected}加载完成,形状为:", loaded_data.shape)

button = Button(master, text = "Import Dataset", command = dat_import)
button.pack(pady=5)

mainloop()

后续调用说明

后续你需要做分析时,直接访问全局变量loaded_data即可,它就是你选中的数据集对应的DataFrame格式对象。如果需要可视化确认加载结果,也可以额外添加按钮调用loaded_data.head()打印前几行数据验证。

内容的提问来源于stack exchange,提问作者user14268322

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:36:01