如何创建一个数据框,其中包含一个键下的2D列表?

问题描述

我创建了一个词典,其中包含以下数据

x = {'a':[[1,2,3],[4,5,6]], 'b':[[7,8,9],[10,11,12]]}

我想创建一个看起来像这样的数据框,

enter image description here

我应该如何实现?

解决方法

以列表理解的方式创建DataFrame,并通过concat加入togeher:

df = pd.concat({k: pd.DataFrame(v).T for k,v in x.items()},axis=1)
print(df)
   a     b    
   0  1  0   1
0  1  4  7  10
1  2  5  8  11
2  3  6  9  12

另一个想法是使用dict理解来更改原始格式(性能应该更好):

d = {(k,i):y for k,v in x.items() for i,y in enumerate(v)}
print (d)
{('a',0): [1,2,3],('a',1): [4,5,6],('b',0): [7,8,9],1): [10,11,12]}

df = pd.DataFrame(d)
print (df)
   a     b    
   0  1  0   1
0  1  4  7  10
1  2  5  8  11
2  3  6  9  12

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...