Necesito ayuda para comparar los valores en una trama de datos pandas que están indexados de manera diferente. He leído la trama de datos de un archivo CSV que contiene 'Time' cabeceras, 'estimados', 'Motor'. 'Time' es una serie de tiempo "HH DD.MM.AAAA: mm: ss" en pasos de 10 minutos, 'Predicción' y toman valores 'motor' 0 o 1. Por lo que se ve así:
+--------------------+---------+---------+
|Time |Predicted|Engine |
|01.01.2019 00:00:00| 0| 0|
|01.01.2019 00:10:00| 1| 0|
|01.01.2019 00:20:00| 1| 1|
| ...| ...| ...|
Quiero comparar el valor predicho en [i] con el valor del motor a [i + 1].
+--------------------+---------+---------+------+
|Time |Predicted|Engine |Result|
|01.01.2019 00:00:00| 0| 0|False | <- although prob. not defined ?
|01.01.2019 00:10:00| 1| 0|True |
|01.01.2019 00:20:00| 1| 1|True |
| ...| ...| ...| ...|
Esta fue mi código inicial (para aclarar lo que yo buscaba), lo que dio lugar a
ValueError: Puedes comparar objetos serie etiquetados de forma idéntica
Código:
res = []
for i in df['Predicted']:
if df['Predicted'][i:i+1] == df['Engine'][i+1:i+2]:
res.append(True)
else:
res.append(False)
df['Result'] = res
Ahora entiendo por qué esto no está funcionando pero no puedo encontrar una solución a este problema por mi cuenta (aún) como soy bastante nuevo en la programación.
Usted puede usar el desplazamiento, que básicamente cambiar su serie por una cierta cantidad y luego comparar esto con el motor:
df['Result'] = df['Predicted'].shift(1) == df['Engine']