问题描述
我创建了一个词典,其中包含以下数据
x = {'a':[[1,2,3],[4,5,6]], 'b':[[7,8,9],[10,11,12]]}
我想创建一个看起来像这样的数据框,
我应该如何实现?
解决方法
以列表理解的方式创建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