gpt4 book ai didi

python - 在 Pandas DataFrame 中使用字典聚合

转载 作者:太空狗 更新时间:2023-10-30 01:25:33 26 4
gpt4 key购买 nike

我有一个数据框:

dat = pd.DataFrame({
'key1' : [ 1, 1, 2, 2, 3, 3, 3, 3, 4, 4],
'key2' : ['a', 'b', 'a', 'c', 'b', 'c', 'd', 'e', 'c', 'e'],
'value' : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
})

I could使用 list 聚合列:

dat.groupby('key1')['key2'].apply(list)
## key1
## 1 [a, b]
## 2 [a, c]
## 3 [b, c, d, e]
## 4 [c, e]
## Name: key2, dtype: object

如果我想获得按 key1 分组的聚合,其中每一行都是 { key2 : value } 对的 dict 怎么办?我的预期输出是:

## key1
## 1 {a : 1, b : 2}
## 2 {a : 3, c : 4}
## 3 {b : 5, c : 6, d : 7, e : 8}
## 4 {c : 9, e : 10}

如何在 pandas 中实现这一点?

一种解决方案是使用上述函数创建两个列表,然后将它们合并为 dict,但也许有更好的解决方案?

最佳答案

根据您的更新,您正在寻找 groupby + apply

df.groupby('key1')['key2', 'value'].apply(lambda x: dict(x.values))

key1
1 {'a': 1, 'b': 2}
2 {'a': 3, 'c': 4}
3 {'b': 5, 'c': 6, 'd': 7, 'e': 8}
4 {'c': 9, 'e': 10}
dtype: object

关于python - 在 Pandas DataFrame 中使用字典聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50561035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com