Python 来自dict列表dict的数据帧?

Python 来自dict列表dict的数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一份口述清单。在pandas中将其转换为数据帧的最有效方法是什么 data = { "0a2":[{"a":1,"b":1},{"a":1,"b":1,"c":1},{"a":1,"b":1}], "279":[{"a":1,"b":1,"c":1},{"a":1,"b":1,"d":1}], "ae2":[{"a":1,"b":1},{"a":1,"d":1},{"a":1,"b":1},{"a":1,"d":1}], #... } import

我有一份口述清单。在pandas中将其转换为
数据帧
的最有效方法是什么

data = {
     "0a2":[{"a":1,"b":1},{"a":1,"b":1,"c":1},{"a":1,"b":1}],
     "279":[{"a":1,"b":1,"c":1},{"a":1,"b":1,"d":1}],
     "ae2":[{"a":1,"b":1},{"a":1,"d":1},{"a":1,"b":1},{"a":1,"d":1}], 
     #...
}
import pandas as pd
pd.DataFrame(data, columns=["a","b","c","d"])

我所尝试的:

一种解决方案是通过复制“id”键,像这样对数据进行非规范化:

但是我的数据非常大,所以我更喜欢其他层次索引解决方案。

IIUC,你可以这样做(remcomended)

输出:

       a    b    c    d
0a2 0  1  1.0  NaN  NaN
    1  1  1.0  1.0  NaN
    2  1  1.0  NaN  NaN
279 0  1  1.0  1.0  NaN
    1  1  1.0  NaN  1.0
ae2 0  1  1.0  NaN  NaN
    1  1  NaN  NaN  1.0
    2  1  1.0  NaN  NaN
    3  1  NaN  NaN  1.0
   a    b    c   ID    d
0  1  1.0  NaN  0a2  NaN
1  1  1.0  1.0  0a2  NaN
2  1  1.0  NaN  0a2  NaN
0  1  1.0  1.0  279  NaN
1  1  1.0  NaN  279  1.0
0  1  1.0  NaN  ae2  NaN
1  1  NaN  NaN  ae2  1.0
2  1  1.0  NaN  ae2  NaN
3  1  NaN  NaN  ae2  1.0

输出:

       a    b    c    d
0a2 0  1  1.0  NaN  NaN
    1  1  1.0  1.0  NaN
    2  1  1.0  NaN  NaN
279 0  1  1.0  1.0  NaN
    1  1  1.0  NaN  1.0
ae2 0  1  1.0  NaN  NaN
    1  1  NaN  NaN  1.0
    2  1  1.0  NaN  NaN
    3  1  NaN  NaN  1.0
   a    b    c   ID    d
0  1  1.0  NaN  0a2  NaN
1  1  1.0  1.0  0a2  NaN
2  1  1.0  NaN  0a2  NaN
0  1  1.0  1.0  279  NaN
1  1  1.0  NaN  279  1.0
0  1  1.0  NaN  ae2  NaN
1  1  NaN  NaN  ae2  1.0
2  1  1.0  NaN  ae2  NaN
3  1  NaN  NaN  ae2  1.0
   a    b    c   ID    d
0  1  1.0  NaN  0a2  NaN
1  1  1.0  1.0  0a2  NaN
2  1  1.0  NaN  0a2  NaN
0  1  1.0  1.0  279  NaN
1  1  1.0  NaN  279  1.0
0  1  1.0  NaN  ae2  NaN
1  1  NaN  NaN  ae2  1.0
2  1  1.0  NaN  ae2  NaN
3  1  NaN  NaN  ae2  1.0