【发布时间】:2020-08-31 09:44:42
【问题描述】:
我目前正在练习熊猫
我正在使用一些口袋妖怪数据作为练习https://gist.github.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6
我想制作一个程序,允许用户输入他们的查询,我会返回他们需要的结果。
我有一个小问题,如果我在 pysimplegui 中显示我的 pandas 查询的结果,它会显示一个“丑陋”的结果,这与终端中的“漂亮”不同。为了更清楚我的问题,这里有一个例子。
如果我查询这个:
我按“搜索”后的结果是
但是如果我在终端中查看结果,它看起来像这样
这是我的工作代码
import pandas as pd
import PySimpleGUI as sg
pd.set_option('display.max_rows', None)
df = pd.read_csv(r'PATH HERE')
layout = [ [sg.Text('This is a basic searcher \nPlease input your search parameters')],
[sg.Text('Name'), sg.Input(key='Name')],
[sg.Text('Type 1'), sg.Input(key='Type 1')],
[sg.Text('Type 2'), sg.Input(key='Type 2')],
[sg.Text('Total'), sg.Input(key='Total')],
[sg.Text('Generation'), sg.Input(key='Generation')],
[sg.Button('Search'), sg.Button('Close')]
]
window = sg.Window('Pokemon Database Query', layout).Finalize()
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Close':
break
if event == 'Search':
df_query = 'df.loc['
for key,value in values.items():
if value != '':
if value.isnumeric():
df_query += f'''(df['{key}'] == {value})&'''
else:
df_query += f'''(df['{key}'] == '{value}')&'''
df_query = df_query[:-1] + ']'
sg.popup_scrolled('Result', eval(df_query))
window.close()
谢谢
【问题讨论】:
-
您需要使用“固定宽度字体”,以便文本按列排列。尝试设置 font='courier 10'。
标签: python pandas dataframe pysimplegui