Keine Abfrage eine lokale variable in pandas 0.14.0

Kann ich der Abfrage einen expliziten Wert:

fills.query('Symbol=="BUD US"')

Nun möchte ich eine Abfrage variable:

In [40]: my_symbol
Out[40]: 'BUD US'

In pandas 0.13.1, konnte ich einfach nutzen:

fills.query('Symbol==my_symbol')

Dies ist nicht mehr erlaubt, in pandas 0.14.0 weil lokale Variablen müssen explizit erwähnt. Also versuchte ich

fills.query('Symbol==@my_symbol')

aber das hat einen Fehler zurückgegeben

KeyError: '__pd_eval_local_my_symbol'

War ich in der Lage zu ändern, einige meiner anderen code verwenden, die explizit lokale Variablen, aber dieses gerade nicht. Irgendwelche Gedanken? Die "dtype" wird object, wenn das hilft.

  • Kannst du uns ein kleines reproduzierbares Beispiel (ausführbarer code, der diesen Fehler)?
  • fills = pd.DataFrame({'Symbol':['BUD US', 'BUD US', 'IBM US', 'IBM US'], 'Price':[109.70, 109.72, 183.30, 183.35]})
  • Problemumgehung: es wird funktionieren, wenn my_symbol ist eine Liste: my_symbol = ['BUD US']
  • Hey, das hat funktioniert! Also, was brach in 0.14.0? Ich war in der Lage, Abfragen in 0.13.1 als Skalare.
  • Ah, hab dein Kommentar erst jetzt, scheint, haben wir herausgefunden das gleiche 🙂
  • Diese wurde von github.com/pydata/pandas/commit/...

InformationsquelleAutor chrisaycock | 2014-05-31
Schreibe einen Kommentar