我有一个要转换为pandas DataFrame的字典列表,但我无法使用,pandas.DataFrame.from_dict()
因为我希望将“ name”键的值作为列标题和“ duration”的值键为行值。关于如何进行这项工作有什么建议吗?
[[{'duration': 21.82, 'name': 'ABC'},
{'duration': 3.9, 'name': 'DEF'},
{'duration': 105.78, 'name': 'GHI'},
{'duration': 63.14, 'name': 'JKL'}],
[{'duration': 18.9, 'name': 'ABC'},
{'duration': 56.01, 'name': 'DEF'},
{'duration': 38.36, 'name': 'GHI'},
{'duration': 34.16, 'name': 'JKL'}]]
所需输出:
ABC DEF GHI JKL
0 21.82 3.9 105.78 63.14
1 18.9 56.01 38.36 34.16
您可以通过itertools.chain
,然后通过pivot
数据框展平列表列表。这里的窍门是使用一个由石斑鱼累计计数的索引。
from itertools import chain
df = pd.DataFrame(list(chain.from_iterable(L)))
res = df.pivot(index=df.groupby('name').cumcount(), columns='name')
res.columns = res.columns.droplevel(0) # remove unwanted column level
print(res)
name ABC DEF GHI JKL
0 21.82 3.90 105.78 63.14
1 18.90 56.01 38.36 34.16
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句