我正在处理一些代码,需要将熊猫数据帧映射到由复合键和一些值组成的字典中。
以下是一个初始示例,key
由(PostalCode, Sex)(Name, Age)
组成,而value
是与{{1}匹配的所有sum
中的salary
}。我正在寻找一种优雅地进行此映射的方法。
key
答案 0 :(得分:2)
首先聚合sum
,然后用解包变量MultiIndex
的键来在字典理解中更改a,b,c,d
中值的格式:
s = people.groupby(["PostalCode", "Sex","Name", "Age"])["Salary"].sum()
print (s)
PostalCode Sex Name Age
ab 11 M tom 22 5555
ab 13 M Rob 22 9999
ab 14 M nick 33 12221
ab 15 F juli 18 2222
Name: Salary, dtype: int64
d= {((a,b), (c,d)): v for (a,b,c,d), v in s.items()}
print(d)
{(('ab 11', 'M'), ('tom', 22)): 5555,
(('ab 13', 'M'), ('Rob', 22)): 9999,
(('ab 14', 'M'), ('nick', 33)): 12221,
(('ab 15', 'F'), ('juli', 18)): 2222}