python - 如何使用熊猫将连续数字转换为分类?
问题描述
我正在寻找这个问题的解决方案几天,但不幸的是没有成功。
我在这样的列中有连续值:
Val: 1, 15, 2, 91, 52, 126
我需要将这些数字转换为间隔的类别。例如,第一个数字应属于 (1-10) 类别
我知道我们可以定义间隔并使用转换数据pd.cut
pd.cut(df.val, right=False)
但我的问题是我无法定义区间,因为我有数百万的价值。
理想的解决方案是我可以定义区间范围,然后它会自动搜索值并将其转换为该类别。
这将是我理想的输出:
Val Val_Cat
1 1-10
15 10-20
2 1-10
91 90-100
52 50-60
126 120-130
解决方案
您可以使用所需的相应类别创建一个新列:
def cat(x):
return str(x//10*10) + '-' + str((x//10*10)+10)
df['Val_cat']=list(map(cat, df.Val))
推荐阅读
- c# - 将分配给模型的值发布到方法时如何保持它?
- css - 无法让 flexbox 为 safari 工作(仅),适用于其他一切
- sql - SQL 将逐年行插入子表 - 避免重复
- ios - 如何在 UICollectionView Swift 中内联播放视频?
- java - 当返回值因条件而异时使用 Generic
- rest - 用于第 3 方 API 的 Azure 自定义连接器,带有 Oauth 2.0 访问令牌
- processing - 处理 3.5.3 软件未在 Windows 10 中启动
- maven - 我可以使用 dockerfile 自动化我的 spring-boot docker 构建还是 Jenkins 更合适?
- python - 跨观测值和年份的操作返回 NaN
- javascript - JS项目文件放置