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