我有一个格式的数据框
|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 |
我想按前两列进行分组,并创建每天计数的字典,作为将原始行分组的新列,然后丢弃原始的Count和Day列。我希望我的结果看起来像
|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}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句