gpt4 book ai didi

python - Pandas 按多列分组并将结果作为新列放入 map 中

转载 作者:太空宇宙 更新时间:2023-11-03 14:49:22 33 4
gpt4 key购买 nike

我有一个格式的数据框

|Col1|Col2|Count|Day  |
|----|----|-----|-----|
| A | C | 1 | Mon |
| A | C | 3 | Tue |
| A | C | 5 | Wed |
| A | D | 7 | Mon |
| B | C | 2 | Mon |
| B | D | 4 | Tue |

我想按前两列分组,并创建一个包含每天计数的字典作为对原始行进行分组的新列,并丢弃原来的计数和日列。我希望我的结果看起来像

|Col1|Col2|dateCounts                   |
|----|----|-----------------------------|
| A | C |{"Mon":1, "Tue": 3, "Wed": 5}|
| A | D |{"Mon":7} |
| B | C |{"Mon":2} |
| B | D |{"Tue":4} |

我可以做一些事情,比如将列添加到每一行,删除 Count 和 Day 列,然后在框架上删除重复项,但我正在努力让额外的 dateCounts 列正常工作。这是否可以使用 df.groupby(['Col1', 'Col2']).apply() 方法?

最佳答案

使用groupby + apply:

df.groupby(['Col1', 'Col2'])\
.apply(lambda x: dict(zip(x.Day, x.Count))).reset_index(name='dateCounts')

Col1 Col2 dateCounts
0 A C {'Wed': 5, 'Tue': 3, 'Mon': 1}
1 A D {'Mon': 7}
2 B C {'Mon': 2}
3 B D {'Tue': 4}

关于python - Pandas 按多列分组并将结果作为新列放入 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47054124/

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