[英]How to create a panda dataframe from a list of dictionaries with the same keys.?
I have the following list of dictionaries with same KEY, I want to convert it to a dataframe where the same Key will be grouped as column and the likewise the values.我有以下具有相同 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}}]
Thus far I have done到目前为止我已经完成了
df_a = pd.DataFrame(a)
You have duplicate columns, so assuming you will want to number the duplicate columns and assuming the duplicate records appear in same order:您有重复的列,因此假设您想要对重复的列进行编号并假设重复的记录以相同的顺序出现:
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: 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.