import pandas as pd import PySimpleGUI as sg file_list_column = [ [sg.Text('Choose CSV File')], [sg.Text('File Location: '), sg.Input(size=(25, 1), key="-IN2-", change_submits=True), sg.FileBrowse(key="-IN-", file_types=(("CSV Files", "*.csv"),))], [sg.Button('Submit')], [sg.Output(size=(80, 40))] ] window = sg.Window('VIDEOTRON DATA CALCULATOR', file_list_column) while True: event, values = window.read() if event == sg.WIN_CLOSED or event == "Exit": break if event == 'Submit': pd.set_option('display.max_rows', None) df = pd.read_csv( values["-IN2-"], sep=";", encoding='unicode_escape', decimal=",", usecols=[9, 20, 39]) df.replace('UTILISATION POUR LE', '', regex=True, inplace=True) df = df.set_axis(['NOM', 'B', 'DATA'], axis=1) df = df[df['B'].str.contains('DONN')] df = df.replace('é', 'e', regex=True) df = df.replace('Ã', 'E', regex=True) df = df.replace('E´', 'o', regex=True) df = df.replace('E§', 'c', regex=True) df = df.replace('‰', '', regex=True) df['DATA'] = df['DATA'].apply( lambda x: float(x.split()[0].replace(',', '.'))) datasum = df.groupby('NOM')['DATA'].sum( min_count=1).reset_index().sort_values(by='DATA') # TODO : How to make this output formatted? Need to maybe use a ListBox, but I don't understand how to loop the datastream. print(datasum)