python - Pandas 粗化分类变量
问题描述
假设我有一个具有以下值的分类变量,通过调用数据框中unique()
的列给出:
Categories (7, object): [0-2, 6-8, 9-11, 3-5, 15-17, 12-14, 24-26]
并且我通过调用给出的每个类别都有以下事件value_counts()
:
0-2 209
3-5 34
6-8 17
9-11 7
15-17 6
12-14 3
24-26 1
将这些类别粗化/压缩成两个新类别“高”和“低”的好方法是什么?
解决方案
这是使用pd.cut
范围的正确值,并将它们分成两部分,您也可以使用qcut
以获得不同的切割结果
groupkey=pd.cut(s.index.str.split('-').str[-1].astype(int),2,labels=['low','high'])
s.groupby(groupkey).sum()
low 270
high 7
Name: v, dtype: int64
推荐阅读
- string - 在 Mulesoft 或 DataWeave 中将大字符串拆分为 n 大小的块
- java - 错误:系统找不到指定的文件。詹金斯
- powershell - Powershell splatting 嵌套哈希表
- java - Java 8 - 如何减少此地图操作的大小(行)?
- react-native - 如何在没有 Firebase 的情况下为 React Native App 设置 Google 登录?
- python - 如何在没有命令或事件 discord.py 的情况下发送消息
- macos - Gitlab授权被拒绝
- parsing - 批处理:不解析键值注释
- azure - 使用 azure App Insights 显示分数低于 60% 的 Qna Maker
- php - 如何将两个数组合并为一个并转置结构以简化循环打印?