我有一本词典,内容如下:

D = {'mark': [['height', 7], ['weight', 70]],
     'david': [['height', 8], ['weight', 80]],
     'john': [['height', 9], ['weight', 90]]}
print (D)

我想把Pandas 的数据帧转换成这样的形式:

   names  height  weight
0   mark       7      70
1  david       8      80
2   john       9      90

我try 了如下方法.

df = pd.DataFrame(D)
print (df)

然而,它会在下面产生一个错误的结果.

           mark         david          john
0   [height, 7]   [height, 8]   [height, 9]
1  [weight, 70]  [weight, 80]  [weight, 90]

Edit:

如果字典中的值数不同于下面的值,该怎么办?

D2 = {'mark': [['height', 7], ['weight', 70]],
     'david': [['height', 8], ['weight', 80]],
     'john': [['height', 9]]}
print (D2)

推荐答案

您可以使用:

df = pd.DataFrame({k: dict(v) for (k,v) in D.items()}).T.reset_index(names="names")

发帖主题:Re:Kolibrios

print(df)

   names  height  weight
0   mark       7      70
1  david       8      80
2   john       9      90

Python相关问答推荐

为什么自定义pytree aux_data对于jnp.数组来说在.jit()之后跟踪,而对于np.数组来说则不是?

如何修复fpdf中的线路出血

如何使用关键参数按列对Pandas rame进行排序

过滤绕轴旋转的螺旋桨

遵循轮廓中对象方向的计算线

如何根据条件在多指标框架上进行groupby

使用pandas、matplotlib和Yearbox绘制时显示错误的年份

在函数内部使用eval(),将函数的输入作为字符串的一部分

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

如何根据参数推断对象的返回类型?

如何找到满足各组口罩条件的第一行?

为什么这个带有List输入的简单numba函数这么慢

如何使用数组的最小条目拆分数组

将pandas Dataframe转换为3D numpy矩阵

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

在极性中创建条件累积和

在Django admin中自动完成相关字段筛选

如何合并两个列表,并获得每个索引值最高的列表名称?

如何杀死一个进程,我的Python可执行文件以sudo启动?

python中csv. Dictreader. fieldname的类型是什么?'