如何在Pandas中统计不同运输方式的占比?
统计运输方式(Ship Mode)占比的方法
你已经通过以下代码获取了各运输方式的数量:
mode_counts = df3.groupby('Ship Mode')['Ship Mode'].count()
基于这个结果,你可以用以下几种方式计算占比:
方法1:基于已有计数结果计算
通过将各运输方式的数量除以总数,再转换为百分比格式:
# 计算占比并保留两位小数 mode_percentages = (mode_counts / mode_counts.sum()).round(2) * 100
执行后会得到每种运输方式对应的百分比占比,例如Standard Class 60表示标准运输占比60%。
方法2:一步到位直接计算占比
使用value_counts的normalize参数,无需先单独统计数量:
# 直接获取占比并转换为百分比 mode_percentages = df3['Ship Mode'].value_counts(normalize=True).round(2) * 100
这个方法更简洁,normalize=True会自动按比例计算各分类的占比。
可选:转换为DataFrame便于查看
如果需要更规整的表格形式展示,可以将结果转为DataFrame:
percent_df = mode_percentages.reset_index() percent_df.columns = ['Ship Mode', 'Percentage(%)']
最终会得到包含"运输方式"和"占比(%)"两列的数据集,方便后续查看或可视化。
内容的提问来源于stack exchange,提问作者user19589852
相关产品推荐
相关产品推荐

