![](/img/trans.png)
[英]How to create a dataframe from specific keys of a List of dictionaries in python?
[英]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)
您有重復的列,因此假設您想要對重復的列進行編號並假設重復的記錄以相同的順序出現:
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.