python - 熊猫数据框中分类列的概率
问题描述
我有一个像这样的熊猫数据框
0 Age color country
1 23 red Us
2 25 black UK
3 19 blue UK
4 10 red India
5 15 red UK
我想要做的是在“颜色”列中找到每个类别的概率,并有这样的东西:
0 Age color country color_pro
1 23 red Us 0.6
2 25 black UK 0.2
3 19 blue UK 0.2
4 10 red India 0.6
5 15 red UK 0.6
我应该怎么做才能在元组中找到概率?像这样:
0 color color_pro
1 red 0.6
2 black 0.2
3 blue 0.2
4 red 0.6
5 red 0.6
我想在另一个元组中有概率:
0 color_pro
1 0.6
2 0.2
3 0.2
4 0.6
5 0.6
解决方案
使用groupby
和count
获取值,然后计算比例。
df['color_pro'] = df.groupby('color')['color'].transform('count')
df['color_pro'] = df['color_pro'].map(lambda x : x/len(df))
或者,将两条线结合在一起,我们也可以这样做。
df['color_pro'] = df.groupby('color')['color'].transform(lambda x : x.count()/len(df))
推荐阅读
- sql - TO_TIMESTAMP 比较
- javascript - Google API 使用 JavaScript 中的 id_token 从 Java 访问 Gmail
- mysql - MySQL 将一个查询组合成另一个以用于 Grafana
- c++ - 绝对编码器十六进制输入
- java - 在 Java 中创建这种模式?(我的循环不工作)
- jquery - 仅在部分视图上验证 1 个字段的 JQuery 验证器
- java - 自动测量 Hadoop 执行时间
- php - 更改 DOCUMENT_ROOT 以引用外部 URL 图像文件路径
- java - Spring-WS 请求失败但soapUI 工作
- android - 在视图寻呼机中启动片段导致非法状态异常?