2014-02-14 7 views
9

Ich habe in eine Problemgruppierung mit HDFStore lief, die Zeile Zeilen basierend auf Zeichenfolgen, die das '&'-Zeichen enthalten erweitert. Dies sollte das ProblemPandas und HDF5, Abfrage einer Tabelle, Zeichenfolge mit '&' Zeichen

>>> from pandas import HDFStore, DataFrame 
>>> df = DataFrame({'a': ['a', 'a', 'c', 'b', 'test & test', 'c' , 'b', 'e'], 
        'b': [1, 2, 3, 4, 5, 6, 7, 8]}) 
>>> store = HDFStore('test.h5') 
>>> store.append('test', df, format='table', data_columns=True) 
>>> df[df.a == 'test & test'] 
 
    a    b 
4 test & test 5 
>>> store.select('test', 'a="test & test"') 
 
Int64Index([], dtype='int64') Empty DataFrame 

Jetzt illustriert ich frage mich, wenn ich etwas von den documentation fehle bin oder wenn dies ein Fehler ist.

+3

Fehler .... siehe hier: https://github.com/pydata/pandas/issues/6351; Ich denke nicht, dass das schwer zu beheben ist, wir haben einen Pre-Parser, der im Grunde bestimmte Ausdrücke ersetzt; muss es nicht in Anführungszeichen haben – Jeff

+0

Got it thanks! –

+1

Dies wurde gerade in ...... zusammengeführt. Also bitte versuchen Sie es mit Meister! – Jeff

Antwort

-2

Meiner Meinung nach ist h5py ein viel robusteres Python-Modul für HDF5-Dateien als Pandas. http://www.h5py.org/

+2

Die Frage ist, wie man Pandas benutzt. Diese Antwort hat nichts mit dem vorliegenden Problem zu tun. – tharen

1

Wie kommentierte dies nun behoben ist (da Pandas 0,14):

In [11]: df[df.a == 'test & test'] 
Out[11]: 
      a b 
4 test & test 5 

In [12]: store.select('test', 'a="test & test"') 
Out[12]: 
      a b 
4 test & test 5 
Verwandte Themen