簡體   English   中英

如何從具有相同鍵的字典列表中創建熊貓 dataframe。?

[英]How to create a panda dataframe from a list of dictionaries with the same keys.?

我有以下具有相同 KEY 的字典列表,我想將其轉換為 dataframe,其中相同的 Key 將被分組為列,值也是如此。

a =[{'0WVj9KjC13RO1aj0KqPpHQ': {'Height': 3360.0}},{'0WVj9KjC13RO1aj0KqPpHQ': {'Length': 3842.12759802427}},{'0WVj9KjC13RO1aj0KqPpHQ': {'Width': 250.0}},{'0WVj9KjC13RO1aj0KqPpHQ':{'GrossFootprintArea': 0.960531899506066}},{'0WVj9KjC13RO1aj0KqPpHQ': {'NetVolume': 3227387182.34039}},{'0WVj9KjC13RO1aj0KqPpHQ': {'NetSideArea': 12909548.7293616}},{'0WVj9KjC13RO1aj0KqPpHQ': {'NetSideArea': 29.4201612577353}},{'0WVj9KjC13RO1aj0KqPpHQ':{'NetVolume': 3.22738718234038}},{'0WVj9KjC13RO1al0GqPold': {'Height': 3000.0}},{'0WVj9KjC13RO1al0GqPold': {'Length': 5070.0}},{'0WVj9KjC13RO1al0GqPold': {'Width': 250.0}},{'0WVj9KjC13RO1al0GqPold': {'GrossFootprintArea': 1.2675}},{'0WVj9KjC13RO1al0GqPold': {'NetVolume': 3802500000.0}},{'0WVj9KjC13RO1al0GqPold': {'NetSideArea': 15210000.0}},{'0WVj9KjC13RO1al0GqPold': {'NetSideArea': 30.47539488}},{'0WVj9KjC13RO1al0GqPold': {'NetVolume': 3.08609936}}]

到目前為止我已經完成了

df_a = pd.DataFrame(a)

這就是我得到的,但我希望 VALUES 成為該特定 KEY 的列

我希望 output 成為在此處輸入圖像描述

您有重復的列,因此假設您想要對重復的列進行編號並假設重復的記錄以相同的順序出現:

data = defaultdict(dict)
for x in a:
  id_ = list(x.keys())[0]
  for k, v in x[id_].items():
    if k in data[id_]:
      i = 1
      k = f"{k}_{i}"
      while k in data[id_]:
        i += 1
        k = f"{k}_{i}"
    data[id_][k] = v

df = pd.DataFrame.from_dict(data).T

Output:

    
                        Height  Length  Width   GrossFootprintArea  NetVolume   NetSideArea NetSideArea_1   NetVolume_1
0WVj9KjC13RO1aj0KqPpHQ  3360.0  3842.127598 250.0   0.960532    3.227387e+09    1.290955e+07    29.420161   3.227387
0WVj9KjC13RO1al0GqPold  3000.0  5070.000000 250.0   1.267500    3.802500e+09    1.521000e+07    30.475395   3.086099

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM