我的数据框:
Col X Col Y ID Value
A a 'r' 3
A a 'b' 2
A a 'c' 1
B b 'd' 5
B b 's' 6
B b 'd' 7
所需输出:
Col X Col Y Out
A a {'r':3, 'b':2, 'c':1}
B b {'d': 5, 's': 6, 'd':7}
迄今为止尝试的方法:
df = df.set_index(['Col X', 'Col Y', 'ID']).Value
dict_column = {k: df.xs((k, v)).to_dict() for k,v,v2 in df.index}
3条答案
按热度按时间dsekswqp1#
将
GroupBy.apply
与lambda函数一起使用:python字典中不存在重复的键。您可以聚合值,例如,按
sum
:t3irkdon2#
您可以在
apply
内创建pd.Series
并使用to_dict
:k5ifujac3#
可以将
groupby.apply
与dict
和zip
一起使用:输出量:
如果要聚合重复的键:
输出量: