python pandas compare series

python - ¿Qué sucede cuando comparas 2 series de pandas?



compare (1)

Me encontré con un comportamiento inesperado en pandas cuando comparé dos series. Quería saber si esto es intencionado o un error.

supongo que yo:

import pandas as pd x = pd.Series([1, 1, 1, 0, 0, 0], index=[''a'', ''b'', ''c'', ''d'', ''e'', ''f''], name=''Value'') y = pd.Series([0, 2, 0, 2, 0, 2], index=[''c'', ''f'', ''a'', ''e'', ''b'', ''d''], name=''Value'') x > y

rendimientos:

a True b False c True d False e False f False Name: Value, dtype: bool

que no es lo que yo quería Claramente, esperaba que los índices se alinearan. Pero tengo que alinearlos explícitamente para obtener los resultados deseados.

x > y.reindex_like(x)

rendimientos:

a True b True c True d False e False f False Name: Value, dtype: bool

Que es lo que esperaba.

Lo que es peor es si yo:

x + y

Yo obtengo:

a 1 b 1 c 1 d 2 e 2 f 2 Name: Value, dtype: int64

Entonces cuando se opera, los índices se alinean. Al comparar, no lo hacen. ¿Es precisa mi observación? ¿Es esto para algún propósito?

Gracias,

-PiR


Error o no. Sugeriría hacer un marco de datos y comparar las series dentro del marco de datos.

import pandas as pd x = pd.Series([1, 1, 1, 0, 0, 0], index=[''a'', ''b'', ''c'', ''d'', ''e'', ''f''], name=''Value_x'') y = pd.Series([0, 2, 0, 2, 0, 2], index=[''c'', ''f'', ''a'', ''e'', ''b'', ''d''], name=''Value_y'') df = pd.DataFrame({"Value_x":x, "Value_y":y}) df[''Value_x''] > df[''Value_y''] Out[3]: a True b True c True d False e False f False dtype: bool