首页 > 解决方案 > 如何从包含列表列表的字典中创建多个数据框

问题描述

我有一个复杂的字典,如下所示

d = {'a':[['x','y'],['1','2']],'b':[['x','y'],['3','4']]}

我想在循环中将其转换为一组 pd 数据帧,例如

a
x y
1 2

b
x y
3 4

有什么建议可以实现吗?

标签: pythonpandaslistdataframedictionary

解决方案


您可以将第一个列表用作列名,将其余列表用作行

import pandas as pd

d = {'a': [['x', 'y'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2']],
     'b': [['x', 'y'], ['3', '4'], ['3', '4'], ['3', '4'], ['3', '4']]}

# create dict of dataframes with dict comprehension
df_dict = {k: pd.DataFrame(v[1:], columns=v[0]) for k, v in d.items()}

# iterate through df_dict
for k, v in df_dict.items():
    print(k)
    print(v)

#############
a
   x  y
0  1  2
1  1  2
2  1  2
3  1  2
b
   x  y
0  3  4
1  3  4
2  3  4
3  3  4

推荐阅读