簡體   English   中英

pandas DataFrame的dicts列表列表

[英]list of lists of dicts to pandas DataFrame

我有一個很大的dicts列表列表,我想將其轉換為pandas DataFrame。 下面我給我的變量做了一個小例子,但實際上外部列表要大得多,每個內部列表都有更多的字典。

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"}]
           ]

我想要一個看起來像這樣的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

我試過了:

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'}

有沒有辦法創建一個空的DataFrame,然后追加每個內部列表?

或者我如何只獲取DataFrame中的值和列名中的鍵?

嘗試這個:

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