You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.6下利用Pandas实现公交号城市出现占比的动态计算求助

解决方案

步骤说明

通过pandas的交叉表功能可以快速实现需求,核心逻辑是:先统计每个公交编号在各城市的出现次数,再计算该次数占对应公交编号总出现次数的百分比。

代码实现

import pandas as pd

# 构造示例DataFrame
data = {
    'Bus_no.': [3412, 7658, 3412, 5516, 7658, 3412],
    'City': ['Kolkata', 'Nagpur', 'Mumbai', 'Kolkata', 'Chennai', 'Mumbai']
}
df = pd.DataFrame(data)

# 计算每个Bus_no.在各城市的占比百分比
percentage_df = pd.crosstab(df['Bus_no.'], df['City'], normalize='index') * 100

# 格式化输出,保留两位小数
percentage_df = percentage_df.round(2)

print(percentage_df)

输出结果

Bus_no.ChennaiKolkataMumbaiNagpur
34120.0033.3366.670.00
55160.00100.000.000.00
765850.000.000.0050.00

代码解释

  • pd.crosstab:生成公交编号与城市的交叉统计表,normalize='index'参数指定按行(即每个公交编号)做归一化计算,直接得到占比
  • 乘以100将占比转换为百分比,round(2)保留两位小数让结果更直观

内容的提问来源于stack exchange,提问作者CoderG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 15:23:25