该程序用的界面显示数据无法显示请修改: 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('查找相同时间段数据', justification='center')], [sg.Output(size=(80, 20), font=("Adobe 宋体 Std L", 10)),sg.Combo(['Method 1', 'Method 2'])], [sg.Table(values=[], headings=[], key='table3')], [sg.Button('保存数据')] ] # 创建窗 window = sg.Window('查找相同时间段数据', layout) # 当窗口打开时执行的代码 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 08:44:16 浏览: 105
可以尝试将代码中的 `sg.Table` 改为 `sg.Table(values=[], headings=[], key='table3', enable_events=True, bind_return_key=True)`,并添加一个响应事件的代码块,如下所示:
```
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, headings=headings)
elif event == 'table3':
selected_row = values['table3'][0]
sg.popup(f'您选择的行是:{selected_row}')
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('保存成功!')
```
这样就可以让用户选择表格中的某一行,并弹出一个提示框显示选择的行号。同时,表格的 `headings` 参数也需要设置为 DataFrame 的列名,这样表格的列名才能正确显示。
阅读全文