2017-03-10 8 views
1

私のデータセットは、それぞれが関連するメタデータを持つシリーズデータのインスタンスの形式です。各CDトラックがメタデータ(アーティスト、アルバム、長さなど)と一連のオーディオデータを持つCDコレクションと同様です。または、道路状況調査データセットを想像してください - 調査が行われるたびに、道路の単位長さごとの道路状況の物理的なシリーズデータと同様に、場所、日付、時間、オペレータなどのメタデータが記録されます。調査の収集({メタデータ、データ}のペア)がデータセットです。パンダを使用して関連するメタデータを持つシリーズデータのデータベースを格納

pandasを利用して、そのデータセットのインポート、保存、検索、分析を支援したいと考えています。 pandasには、このタイプのデータセットの組み込みサポートがありませんが、多くは追加しようとしています。

  1. はパンダのデータフレームにmetadataを追加しますが、これは周りに間違った方法である - 私は、メタデータのコレクションは、関連するデータ、関連するメタデータでないデータをそれぞれ記録したい:

    典型的なソリューションがどちらかです。

  2. Casting data DataFrameの有効なフィールドであり、メタデータフィールドの1つとして格納するが、キャストプロセスは重大な整合性を捨てる。

  3. multiple indicesを使用して3Dデータフレームを作成しますが、これにより、インデックスの選択に関する設計上の詳細が課せられ、実験が制限されます。

この種のデータセットは非常に一般的なものであり、多くの人がそれに対応するためにパンダを曲げようとしています。私は、正しいアプローチが何であるか、あるいはパンダが正しいツールであるとしても、それが何であるか疑問に思います。

答えて

0

私は今、実用的な解決策を持っていますが、私はこの方法が文書化されていないので、先に龍がいるのだろうかと思います。

私の「データベース」は、このようなものに見えるパンダのデータフレームである:ある | | Description | Time | Length | data_uuid | | 0 | My first record | 2017-03-09 11:00:00 | 502 | f7ee-11e6-b702 | | 1 | My second record | 2017-03-10 11:00:00 | 551 | f7ee-11e6-a996 |

を、私のメタデータは、私のパンダのすべての力を与えてデータフレームの行ですが、私のデータが与えられています輸入に際して各メタデータのデータは実際には個別のDataFrameであり、名前がUUIDのファイルにシリアル化されています。

、レコードを検索し、データを引き出すの説明のための例は次のようになりますその方法:適し輸入、保管、検索機能付き

display(df_database[df_database['Length'] >= 550.0]) 
idx = df_database[df_database['Length'] >= 550.0].index[0] 
df_data = pd.read_pickle(DATA_DIR + str(df_database.at[idx, 'data_uuid'])) 
display(df_data) 

、これは私に力を与えているようだ(関連するとあまりにも多くの制限的なトリックを引っ張らずにパンダを救うことができます。

関連する問題