4 Stimmen

Pandas HDFStore Warnungen

Ich frage mich, warum HDFStore Warnungen zu String-Spalten in pandas gibt. Ich dachte, es könnten NaNs in meiner echten Datenbank sein, aber auch hier erhalte ich die Warnung für beide Spalten, auch wenn eine nicht gemischt ist und einfach nur Zeichenfolgen sind.

Verwendung von .13.1 pandas und 3.1.1 Tabellen

In [75]: d1 = {1:{'Mix': 'Hallo', 'Good': 'Hallo'}}

In [76]: d2 = {2:{'Good':'Auf Wiedersehen'}}

In [77]: d2_df = pd.DataFrame.from_dict(d2,orient='index')

In [78]: d_df = pd.DataFrame.from_dict(d1,orient='index')

In [80]: d = pd.concat([d_df,d2_df])

In [81]: d
Out[81]:
      Good    Mix
1    Hallo  Hallo
2  Auf Wiedersehen   NaN

[2 rows x 2 columns]

In [84]: d.to_hdf('test_.h5','d')
/home/cschwalbach/venv/lib/python2.7/site-packages/pandas-0.13.1-py2.7-linux-x86_64.egg/pandas/io/pytables.py:2446: PerformanceWarning:
your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->mixed,key->block0_values] [items->['Good', 'Mix']]

  warnings.warn(ws, PerformanceWarning)

3voto

Jeff Punkte 123194

Beim Speichern im fixed-Format (das standardmäßig auf fixed festgelegt ist, wenn Sie format nicht angeben), werden object-Dtypen gespeichert (Zeichenfolgen werden als object-Dtypen in Pandas gespeichert). Dies sind Variablentypen, die nicht von PyTables in den Array-Typen (CArray, EArray) unterstützt werden; siehe die Warnung hier

Sie können jedoch in format='table' speichern; siehe hier die Dokumentation zum Speichern von festen Zeichenfolgen.

0voto

TomTom101 Punkte 6692

Der NaN-Wert ist das Problem hier. Wenn es Ihnen gelingt, ihn durch einen leeren String zu ersetzen, wird die Warnung verschwinden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X