Was passiert, wenn Sie vergleichen 2 pandas Serie

Lief ich gegen unerwartetes Verhalten in pandas beim Vergleich der beiden Serien. Ich wollte wissen, ob dies beabsichtigt ist oder ein bug.

vermute ich:

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

ergibt:

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

das ist nicht das, was ich wollte. Klar, ich erwartet, dass die Indizes zum line-up. Aber ich habe explizit diese Zeile, bis die gewünschten Ergebnisse zu erhalten.

x > y.reindex_like(x)

ergibt:

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

Das ist, was ich erwartet hatte.

Was noch schlimmer ist, ist wenn ich:

x + y

Bekomme ich:

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

So, wenn der Betrieb, die Indizes line-up. Beim Vergleich, das tun Sie nicht. Ist meine Beobachtung korrekt? Ist das Absicht für einen bestimmten Zweck?

Dank,

-PiR

  • Ja, das fühlt sich nicht richtig an alle.
  • Es gibt hier ein Thema dazu: github.com/pydata/pandas/issues/1134, und eine geschlossene PR (github.com/pydata/pandas/pull/6860)
  • Wie es aussieht hat ausgedrückt werden als (x-y)>0 statt x>y haben die Elemente ausgerichtet, bis dann...
  • nette Kommentare zu: github.com/pydata/pandas/issues/1134. Lesen Sie sich besonders snth Kommentar: "irgendwann habe ich die Dokumentation um zu sehen, ob mein Verständnis der index die Ausrichtung war korrekt und es wurde nicht erwähnt wird dort, dass dies nur für die +, -, *, / Operatoren und nicht mit ==, !=, <, <=, >, >=."
  • kann nicht scheinen, um der Reihe != Serie, produziert nicht die richtigen Werte. pandas-version '0.23.4'
InformationsquelleAutor piRSquared | 2014-08-21
Schreibe einen Kommentar