Python 数据帧中包含嵌套DICT的DICT列表

Python 数据帧中包含嵌套DICT的DICT列表,python,dictionary,pandas,dataframe,Python,Dictionary,Pandas,Dataframe,我有一张单子。这些格言中的一些对象就是格言本身。我想把它变成一个数据帧。这是我目前得到的 In[163]: res = [{'A':1,'B':{'C':3,'D':4}},{'A':5,'B':{'C':7,'D':8}}] pd.DataFrame(res) Out[163]: A B 0 1 {u'C': 3, u'D': 4} 1 5 {u'C': 7, u'D': 8} 这就是我想要的: A BC BD 0 1 3 4 1

我有一张单子。这些格言中的一些对象就是格言本身。我想把它变成一个数据帧。这是我目前得到的

In[163]:
res = [{'A':1,'B':{'C':3,'D':4}},{'A':5,'B':{'C':7,'D':8}}]
pd.DataFrame(res)

Out[163]:
    A   B
0   1   {u'C': 3, u'D': 4}
1   5   {u'C': 7, u'D': 8}
这就是我想要的:

    A   BC  BD
0   1   3   4
1   5   7   8
我并不真正关心列标题的名称。他们可以是任何人

import pandas as pd
res = [{'A':1,'B':{'C':3,'D':4}},{'A':5,'B':{'C':7,'D':8}}]
df = pd.DataFrame(res)

def col2frame(col):
    try:
        res = pd.DataFrame.from_records(col)
        res.columns = [col.name+name for name in res.columns]
        return res
    except TypeError:
        return col

df = pd.concat([col2frame(df[col]) for col in df], axis=1)
print(df)
屈服

   A  BC  BD
0  1   3   4
1  5   7   8