python - 如何在 Python 中编写函数以获取行值占分组总值的百分比?
问题描述
我有一个包含以下列的数据框:
Date | Origin | Destination | Service | Demand
April 4 | Chicago | Toronto | Ground |250
April 4 | Chicago | Tampa | Ground |250
April 5 | Chicago | Orlando | Air |100
April 5 | Chicago | Seattle | Air |400
我想用 Python 编写一个函数或使用 pandas 函数来获取“日期”和“起源”的需求列占总数的百分比
因此,如果我有以下 groupby:
df.groupby(['Date','Origin'])['Demand'].sum().reset_index()
给我以下内容:
Date | Origin | Demand
April 4 | Chicago | 500
April 5 | Chicago | 500
我想要的输出是:
Date | Origin | Destination | Service | Demand | Percentage
April 4 | Chicago | Toronto | Ground |250 | 0.5
April 4 | Chicago | Tampa | Ground |250 | 0.5
April 5 | Chicago | Orlando | Air |100 | 0.2
April 5 | Chicago | Seattle | Air |400 | 0.8
我将如何写一些能给我百分比列的东西?
解决方案
检查与transform
df['Pct']=df['Demand']/df.groupby(['Date', 'Origin'])['Demand'].transform('sum')
推荐阅读
- java - jsonschema2pojo:如何将注释应用于某些字段
- php - 我将运行“php artisan serve”,它会启动、接受并最终关闭。为什么?请
- python - 获取用户输入的方程
- typescript - 使用 @nestjs/mongoose 时,如何将实例/静态方法添加到 Mongoose 模式?(打字稿问题)
- sql - 如果其中一项与 where 不匹配,则返回空的递归 mysql
- angularjs - 如何添加电子商务?
- python - Tensorflow 数据增强 - 如何将新图像添加到数据集中
- azure - Azure 默认 NSG 不阻止 Internet 流量
- wordpress - 如何使用 WP_Query 按多个元键排序?
- r - 计算分箱数据的相对百分比