1
私はXMLファイルから抽出されたこのデータを持っている:複雑なdictをpandasにインポートするには?
d = {
'test1': {
0: {'a': {'min': 1, 'mid': 12, 'max': 13},
'b': {'min': 2, 'mid': 22, 'max': 23}},
3: {'a': {'min': 3, 'mid': 32, 'max': 33},
'b': {'min': 4, 'mid': 42, 'max': 43}},
8: {'a': {'min': 5, 'mid': 52, 'max': 53},
'b': {'min': 6, 'mid': 62, 'max': 63}},
},
'test2': {
0: {'a': {'min': 9, 'mid': 12, 'max': 13},
'b': {'min': 8, 'mid': 22, 'max': 23}},
3: {'a': {'min': 7, 'mid': 32, 'max': 33},
'b': {'min': 6, 'mid': 42, 'max': 43}},
8: {'a': {'min': 5, 'mid': 52, 'max': 53},
'b': {'min': 4, 'mid': 62, 'max': 63}},
},
}
をそして私はそれをインポート:私は私のデータをブラウズを開始、その後、私の列に名前を付けたい
ds = pd.DataFrame.from_dict(d)
。
列は以下のとおりです。['Tests', 'Id', 'Item']
例えば、私はすべてのテスト、いずれかの項目と任意のIDのすべてのmid
値を取得したいと思います。だから私は単純に書いた:
ds[:,:,:,'min']
しかし、明らかにそれは動作しません。
また、私はデータフレームが想定されているように表現されていないのではないかと心配しています。このようにするにはどうすればいいですか?
あなたは(一般的に辞書が深いことができるように入れ子にすることができるので、1つのステップで行われ得ることは困難かもしれない)でそれらを読んだ後stack
でいくつかの手動変換を行う必要があり
+-------+----+------+-----+-----+-----+
| | | | min | mid | max |
+-------+----+------+-----+-----+-----+
| Tests | Id | Item | | | |
+-------+----+------+-----+-----+-----+
| | 0 | a | 1 | 12 | 13 |
| | | b | 2 | 22 | 23 |
+ test1 +----+------+-----+-----+-----+
| | 1 | a | 3 | 32 | 33 |
| | | b | 4 | 42 | 43 |
+-------+----+------+-----+-----+-----+
| | 0 | a | 9 | 12 | 13 |
| | | b | 8 | 22 | 23 |
+ test2 +----+------+-----+-----+-----+
| | 1 | a | 7 | 32 | 33 |
| | | b | 6 | 42 | 43 |
+-------+----+------+-----+-----+-----+
私は '.rename_axis'のためのエラーを取得する:タプルオブジェクトを呼び出すことはできません。それは普通ですか? – nowox
これは正常ではありません。括弧が間違っているかもしれませんか?サンプルデータには問題ありません。 – Psidom
あなたはこれを見ることができますか? https://gist.github.com/nowox/1d0165221ac17a6de071f51c5428b599 – nowox