无法在界面中显示合并后的数据: import pandas as pd import PySimpleGUI as sg # 定义窗口布局 layout = [ [sg.Text('选择第一个表格文件:', size=(20, 1)), sg.Input(key='file1'), sg.FileBrowse()], [sg.Text('选择第二个表格文件:', size=(20, 1)), sg.Input(key='file2'), sg.FileBrowse()], [sg.Button('查找相同时间段数据')], [sg.Table(values=[], headings=[], key='table3', enable_events=True, bind_return_key=True)], [sg.Button('保存数据')] ] # 创建窗 window = sg.Window('查找相同时间段数据,作者:Dieter', layout, font=("微软雅黑", 15), default_element_size=(50, 1)) # 当窗口打开时执行的代码 while True: event, values = window.read() if event == sg.WINDOW_CLOSED: break elif event == '查找相同时间段数据': # 获取用户选择的文件路径 file1 = values['file1'] file2 = values['file2'] # 读取两个表格的数据 df1 = pd.read_csv(file1) df2 = pd.read_csv(file2) # 按照时间段合并两个 DataFrame 对象 merged_df = pd.merge(df1, df2, on='Time') # 将合并后的数据显示在表格中 headings = merged_df.columns.tolist() values = merged_df.values.tolist() window['table3'].update(values=values) elif event == '保存数据': # 获取当前显示的数据 table_values = window['table3'].get() # 将数据保存到新的表格中 save_file = sg.popup_get_file('保存文件', save_as=True, default_extension='.csv') if save_file: save_df = pd.DataFrame(table_values[1:], columns=table_values[0]) save_df.to_excel(save_file, index=False) sg.popup('保存成功!')
时间: 2024-03-17 09:44:23 浏览: 14
在你的代码中,更新表格的语句 `window['table3'].update(values=values)` 是正确的,但是你没有定义表格的标题。你需要在窗口布局中添加一个 `sg.Table` 元素并设置 `headings` 属性,例如:
```
[sg.Table(values=[], headings=['列1', '列2', '列3'], key='table3', enable_events=True, bind_return_key=True)],
```
这里我添加了一个包含三列的表格,你需要根据你的数据列数修改 `headings` 属性。
相关问题
解释以下代码:import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns
这段代码的作用是导入Python数据分析和可视化的常用库,具体解释如下:
- `import pandas as pd`:导入pandas库,并将其命名为pd,以便在代码中使用更简短的名称来调用pandas的函数和方法。
- `import numpy as np`:导入numpy库,并将其命名为np,以便在代码中使用更简短的名称来调用numpy的函数和方法。
- `import matplotlib.pyplot as plt`:导入matplotlib库中的pyplot子库,并将其命名为plt,以便在代码中使用更简短的名称来调用matplotlib的可视化函数和方法。
- `%matplotlib inline`:这是一个Jupyter Notebook魔法命令,用于在Notebook中显示matplotlib图形。
- `import seaborn as sns`:导入seaborn库,它是一个基于matplotlib的数据可视化库,提供了更高级的统计图形和更美观的默认样式。同样,将其命名为sns以便在代码中使用更简短的名称来调用seaborn的函数和方法。
详细解释代码:import pandas as pd from matplotlib import pyplot as plt import matplotlib import copy import numpy as np
这段代码是用来导入需要用到的Python库并进行别名命名。具体解释如下:
- `import pandas as pd`:导入Pandas库并给它起一个别名pd,Pandas是Python中一个处理数据的库,提供了相应的数据结构和数据分析工具。
- `from matplotlib import pyplot as plt`:从matplotlib库中导入pyplot子库,并给它起一个别名plt,matplotlib是Python中一个2D绘图库,pyplot子库提供了与MATLAB类似的绘图接口。
- `import matplotlib`:导入matplotlib库,matplotlib是Python中一个2D绘图库,提供了很多2D绘图函数。
- `import copy`:导入copy模块,copy模块提供了深度复制(deepcopy)和浅复制(copy)的函数。
- `import numpy as np`:导入numpy库并给它起一个别名np,numpy是Python中一个用于科学计算的库,提供了对多维数组的支持,以及一系列数学函数。