简体   繁体   English

pandas DataFrame的dicts列表列表

[英]list of lists of dicts to pandas DataFrame

I have a large list of a list of dicts, that I would like to transform into a pandas DataFrame. 我有一个很大的dicts列表列表,我想将其转换为pandas DataFrame。 Below I have made a small example of my variable, but in reallity the outer list is much larger and each of the inner lists has more dictionaries. 下面我给我的变量做了一个小例子,但实际上外部列表要大得多,每个内部列表都有更多的字典。

all_meta = [[{"Person":1}, {"trial":2}, {"b-setting":"Off"}], 
            [{"Person":2}, {"trial":5}, {"b-setting":"Off"}],
            [{"Person":2}, {"trial":6}, {"b-setting":"Off"}],
            [{"Person":2}, {"trial":7}, {"b-setting":"Off"}, {"ERROR":"error2"}]
           ]

I want a Pandas DataFrame that looks like this: 我想要一个看起来像这样的Pandas DataFrame:

    person    trial    b-setting    ERROR
0        1        2          Off     None
1        2        5          Off     None
2        2        6          Off     None
3        2        7          Off   error2

I've tried: 我试过了:

In[1]: pd.DataFrame(all_meta)
Out[1]: 
               0             1                     2                    3
0  {'Person': 1}  {'trial': 2}  {'b-setting': 'Off'}                 None
1  {'Person': 2}  {'trial': 5}  {'b-setting': 'Off'}                 None
2  {'Person': 2}  {'trial': 6}  {'b-setting': 'Off'}                 None
3  {'Person': 2}  {'trial': 7}  {'b-setting': 'Off'}  {'ERROR': 'error2'}

Is there a way to create an empty DataFrame and then append each inner list? 有没有办法创建一个空的DataFrame,然后追加每个内部列表?

Or how would I only get the values in the DataFrame and the keys in the Column names? 或者我如何只获取DataFrame中的值和列名中的键?

try this: 尝试这个:

def merge_dicst(dlist):
    d = {}
    for x in dlist:
        d.update(x)
    return d

In [97]: pd.DataFrame([merge_dicst(x) for x in all_meta])
Out[97]:
    ERROR  Person b-setting  trial
0     NaN       1       Off      2
1     NaN       2       Off      5
2     NaN       2       Off      6
3  error2       2       Off      7

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM