Estoy haciendo una interfaz gráfica con qt designer y la implemento en spyder (python 3.8) para hacer una gráfica de anomalías pero no me funciona y me sale este error.
Durante el manejo de la excepción anterior, se produjo otra excepción:
Traceback (most recent call last): File "C:\graficando\logo_rc.py", line 27, in plot data["suelo"] = data[0].rolling(window=wind)\ File "C:\Users\x1920\anaconda3\lib\site-packages\pandas\core\frame.py", line 2800, in __getitem__ indexer = self.columns.get_loc(key) File "C:\Users\x1920\anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 2648, in get_loc return self._engine.get_loc(self._maybe_cast_indexer(key)) File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc File "pandas\_libs\hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item File "pandas\_libs\hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_itemKeyError: 0
Este es mi código en spyder:
import sysimport pandas as pdimport matplotlib.pyplot as pltfrom PyQt5 import uic, QtWidgetsqtCreatorFile="grafica.ui"Ui_MainWindow, QtBaseClass= uic.loadUiType(qtCreatorFile)class VentanaPrincipal(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self): QtWidgets.QMainWindow.__init__(self) Ui_MainWindow.__init__(self) self.setupUi(self) self.importar.clicked.connect(self.getCSV) self.graficar.clicked.connect(self.plot) def getCSV(self): filePath, _ = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file', '/Windows(C:)/') if filePath != "": print ("Dirección",filePath) #Opcional imprimir la dirección del archivo self.df = pd.read_csv(str(filePath)) def plot(self): data=pd.DataFrame(self.df['col1']) plt.plot(data) plt.show() estad_st="Estadisticas de datos: "+str(self.df['col1'].describe()) wind=20 sigma=2 data["suelo"] = data[0].rolling(window=wind)\ .mean() - (sigma * data[0].rolling(window=wind).std()) data["techo"] = data[0].rolling(window=wind)\ .mean() + (sigma * data[0].rolling(window=wind).std()) data.plot() data["anomalía"] = data.apply( lambda row: row[0] if (row[0]<=row["suelo"] or row[0]>=row["techo"]) else 0, axis=1) data.plot() plt.ylabel('Grafico Anomalía') plt.show() self.resultado.setText(estad_st)if __name__=="__main__": app=QtWidgets.QApplication(sys.argv) window=VentanaPrincipal() window.show() sys.exit(app.exec())
En el compilador se encuentra errores en def plot (self) en la parte donde esta data[suelo], no logro hacer que me funcione para que me grafique los resultados y hacer la respectiva grafica de anomalias.
En esa parte me aparece un KeyError:0
no entiendo porque me aparece.
¿Podrían decirme cuál es mi error?