熊猫按多列分组,并将结果作为新列放入地图中

HCA

我有一个格式的数据框

|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()方法可以吗?

cs95

使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章