Input in “TableHeaderData” file output from the Horiba Duetta “Kinetic Spectra” data acquisition mode. Cleans up data file for easy data analysis. Outputs spreadsheet in same directory as python script. 

# -*- coding: utf-8 -*-
"""
Created on Mon Jun 14 22:13:18 2021

@author: Cyrus Picou Jr.
"""
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QFileDialog, QLabel,QPushButton, QVBoxLayout)
from PyQt5.QtWidgets import QLineEdit
import pandas as pd

class DialogApp(QWidget):
    def __init__(self):
        super().__init__()
        
        self.button1 = QPushButton('Load and Fix Data') #makes pushbutton
        self.line1 = QLineEdit()#makes line to add time increment for spectra w/ s units
        self.label1 = QLabel('Time Increment (s)')#adds label for first line
        self.line2 = QLineEdit()#line for new file name
        self.label2 = QLabel('New File Name')#label for new line
        #this section makes the layout of the GUI using vertical box layout
        layout = QVBoxLayout()
        layout.addWidget(self.label1)
        layout.addWidget(self.line1)
        layout.addWidget(self.label2)
        layout.addWidget(self.line2)
        layout.addWidget(self.button1)
        self.setLayout(layout)

        #have to put button clicked event after layout stuff, now it works
        self.button1.clicked.connect(self.buttonClicked)#controls the first button click





    def buttonClicked(self):
        file_name, _ = QFileDialog.getOpenFileName()
        ##need the comma and underscore after file_name, returns filename as str
        file = pd.read_csv(file_name,sep = "\t", header = None)
        file2 = file.copy()
        c_path = 4#the following section takes care of deleting columns and adding the time row
        t_path = 2
        print(file_name)
        t_par = 0
        t_int = pd.to_numeric(self.line1.text(), downcast = "integer")
        
        while c_path <= len(file.columns):
            file2 = file2.drop(c_path - 1, axis = 1)
            c_path += 2
            file2.loc[11,t_path] = t_par
            t_par += t_int
            t_path += 2
        #this code takes care of changing all of the data to float datatype
        row = 12
        r_sum = len(file2.index) - 1
        
        while row <= r_sum:
            file2.loc[row] = pd.to_numeric(file2.loc[row], downcast = "float")
            row += 1
        ext = '.xlsx'
        fname = self.line2.text() + ext#adds excel file type extension to the file name
        file2.to_excel(fname)#saves dataframe as an excel file




if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = DialogApp()
    demo.show()
    sys.exit(app.exec())