import numpy as np
from PyQt5 import QtWidgets
from gui.ui.RenameColumn import Ui_Form
from gui.util.Modules import Modules
[docs]
class RenameColumn(Ui_Form, Modules):
[docs]
def setupUi(self, Form):
super().setupUi(Form)
Modules.setupUi(self, Form)
[docs]
def update_lvl0(self):
try:
self.vars_level0 = np.unique(
self.data[
self.choosedata_comboBox.currentText(
)].df.columns.get_level_values(
0
)
)
self.setComboBox(self.choosecol_lvl0, self.vars_level0)
except:
pass
[docs]
def update_lvl1(self):
try:
self.vars_level1 = np.array(
self.data[self.choosedata_comboBox.currentText()].df[
self.choosecol_lvl0.currentText()].columns.values
)
self.setComboBox(self.choosecol_lvl1, self.vars_level1)
except:
pass
[docs]
def run(self):
old_lvl0 = self.choosecol_lvl0.currentText()
old_lvl1 = self.choosecol_lvl1.currentText()
new_lvl0 = self.new_lvl0_lineEdit.text()
new_lvl1 = self.new_lvl1_lineEdit.text()
# convert to float if possible
try:
new_lvl0 = float(new_lvl0)
except:
pass
try:
new_lvl1 = float(new_lvl1)
except:
pass
dataname = self.choosedata_comboBox.currentText()
data = self.data[dataname].df
data[(new_lvl0, new_lvl1)] = data[
(old_lvl0, old_lvl1)] # create the new column
self.data[dataname].df = data.drop(
(old_lvl0, old_lvl1),
axis=1
) # drop the old column
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = RenameColumn()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())