Pobieram niektóre dane internetowe, parsuję je i przechowuję dane wyjściowe jako Pandas DataFrame w pliku HDF5. Tuż przed wpisaniem do pliku H5 pliku DataFrame
dodaję własny ciąg opisu, aby opisać niektóre metadane dotyczące miejsca, z którego pochodzą dane i czy coś poszło nie tak podczas analizowania.Dodawanie mojego własnego atrybutu opisu do Pandas DataFrame
In [1]: my_data_frame.desc = "Some string about the data"
In [2]: my_data_frame.desc
Out[1]: "Some string about the data"
In [3]: print type(my_data_frame)
<class 'pandas.core.frame.DataFrame'>
Jednak po załadowaniu tych samych danych z pandas.io.pytables.HDFStore()
moja dodany desc
atrybut brakuje i pojawia się błąd: AttributeError: 'DataFrame' object has no attribute 'desc'
jakby nigdy nie dodało ten nowy atrybut.
Jak mogę zachować opisy metadanych jako dodatkowy atrybut obiektu DataFrame? (Czy istnieje jakiś istniejący, rozpoznawany atrybut obiektu DataFrame, który mogę przejąć dla moich celów związanych z metadanymi?)
Czy wiesz, czy można po prostu zastąpić atrybut '__doc__', czy jest on powiązany z ramką DataFrame? Stwierdzam, że gdy próbuję go zastąpić, a następnie załadować obiekt z H5, docstring jest po prostu "Brak". Nie zachowuje mojego nowego docstringu, ale także nie powraca do standardowego docstringu. – ely
Co więcej, prostym rozwiązaniem byłoby dla mnie napisanie słownika do pliku H5, z kluczem "data" dla DataFrame i kluczem "opis" dla mojego opisu ciągu. Ale to daje kluczowy błąd. Czy jest to błąd w H5py/PyTables? Na pewno powinieneś być w stanie przechowywać nieprostokątne tablice danych do H5? – ely
Przepraszam, w ponownym przeczytaniu, które może wydawać się krytyczne. Nie miałem na myśli ciebie (ani Pandy), ale raczej HDF5. Zakładam, że może on pomieścić słownik, ale być może używany PyTables HDFStore jest unikalny dla obiektu pandy? – ely