La comparación de los valores de una trama de datos pandas que están indexados de manera diferente

G-torChris:

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.

Bruno Mello:

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']

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=395835&siteId=1
Recomendado
Clasificación