Webデータを取得して解析し、その出力をPandas DataFrameとしてHDF5ファイルに保存します。 DataFrame
をH5ファイルに書き込む直前に、私自身の記述文字列を追加して、データがどこから来たのか、解析中に何か間違っていたかどうかについてのメタデータに注釈を付けました。自分の記述属性を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'>
しかし、pandas.io.pytables.HDFStore()
と同じデータをロードした後、私の付加desc
属性が欠落していると私はエラーを取得する:AttributeError: 'DataFrame' object has no attribute 'desc'
私はこの新しい属性を追加したことがなかったかのように。
メタデータ記述をDataFrameオブジェクトの余分な属性として保持する方法を教えてください。 (あるいは、メタデータの目的でハイジャックされている既存の、認識されているDataFrameの属性がありますか?)
'__doc__'属性を上書きするだけでよいのか、それともDataFrameにバインドされているのか分かりませんか?上書きしようとするとH5からオブジェクトをロードしようとすると、実際にはdocstringは 'None'です。新しいドキュメントストリングを保持するのではなく、通常のドキュメントストリングに戻っていません。 – ely
また、簡単な解決策は、DataFrameの 'data'キーと文字列の説明のための 'description'キーを使用して、H5ファイルに辞書を書き込むことです。しかし、これは重要なエラーです。これはH5py/PyTablesのエラーですか?確かに、非長方形のデータ配列をH5に格納できるはずですか? – ely
申し訳ありませんが、再読込時に重要な音を出す可能性があります。私はあなた(またはパンダ)を具体的に意味するのではなく、むしろHDF5を意味しました。私はそれが辞書を収容できると仮定していますが、おそらくPyTables HDFStoreが使用されているのはパンダオブジェクトに固有のものでしょうか? – ely