首页 > 解决方案 > 从两个字典创建一个数据框,其中它们的键是列和标题,每个单元格值是键的总和

问题描述

我有两个字典,键为字符串,值为整数,例如:

fw_dist = {
"RIGHT_01":100,
"RIGHT_02":200,
"RIGHT_03":300}

rev_dist = {
"LEFT_01":100,
"LEFT_02":200,
"LEFT_03":300}

我想生成一个数据框,其中每个字典的键是数据框的列和标题,每个单元格的值是字典键的总和,例如:

         LEFT_02 LEFT_01 LEFT_03
RIGHT_03     500     400     600
RIGHT_01     300     200     400
RIGHT_02     400     300     500

有没有一种简洁的方法?

标签: python-3.xpandas

解决方案


这是一种方法。这个想法是将字典转换为 Series,然后使用broadcasting.

s1 = pd.Series(fw_dist)
s2 = pd.Series(rev_dist)
vals = s1.to_numpy().reshape(-1, 1) + s2.to_numpy()
df = pd.DataFrame(vals, index=s1.index, columns=s2.index)

结果:

          LEFT_01  LEFT_02  LEFT_03
RIGHT_01      200      300      400
RIGHT_02      300      400      500
RIGHT_03      400      500      600

推荐阅读