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

如何合并同名城市并计算整体识字率占比以找出最低值?

城市识字率合并计算解决方案

需求

合并同名城市的识字率数据,计算各城市的整体识字率及百分比占比,并找出占比最低的城市。

初始代码与数据

初始代码

import pandas as pd
df = pd.DataFrame({'Cities': ["Cape Town", "Cape Town", "Cape Town", "Tokyo", "Cape Town", "Tokyo", "Mumbai", "Belgium", "Belgium" ],
               'LiteracyRate': [0.05, 0.35, 0.2, 0.11, 0.15, 0.2, 0.65, 0.35, 0.45]})

print(df)

初始数据输出

Cities      LiteracyRate
0  Cape Town   0.05
1  Cape Town   0.35
2  Cape Town   0.2
3  Tokyo       0.11
4  Cape Town   0.15
5  Tokyo       0.2
6  Mumbai      0.65
7  Belgium     0.35
8  Belgium     0.45

预期结果

Cities     LiteracyRate   %LiteracyRate
0  Cape Town  0.75            75
1  Tokyo      0.31            31
2  Mumbai     0.65            65
3  Belgium    0.8             80

错误尝试问题分析

你提供的错误代码存在两个核心问题:

  1. 未对同名城市进行分组合并,仍保留原始行数据;
  2. 百分比计算逻辑错误,用单行识字率除以全局总和,而非将城市整体识字率转换为百分比。

错误代码:

# Calculate the percentage
df["%LiteracyRate"] = (df["LiteracyRate"]/df["LiteracyRate"].sum())*100

# Show the DataFrame
print(df)

正确实现方案

核心步骤

  1. 分组求和:使用groupby按城市名称分组,对每组的LiteracyRate求和,得到各城市的整体识字率;
  2. 转换百分比:将整体识字率乘以100并转为整数,得到百分比占比;
  3. 定位最低占比城市:通过idxmin找到百分比列最小值对应的行,提取城市名称和占比。

完整代码

import pandas as pd

# 初始化数据
df = pd.DataFrame({'Cities': ["Cape Town", "Cape Town", "Cape Town", "Tokyo", "Cape Town", "Tokyo", "Mumbai", "Belgium", "Belgium"],
                   'LiteracyRate': [0.05, 0.35, 0.2, 0.11, 0.15, 0.2, 0.65, 0.35, 0.45]})

# 分组求和得到各城市整体识字率
city_summary = df.groupby('Cities', as_index=False)['LiteracyRate'].sum()

# 计算百分比占比(转为整数)
city_summary['%LiteracyRate'] = (city_summary['LiteracyRate'] * 100).astype(int)

# 找到识字率占比最低的城市
lowest_literacy_city = city_summary.loc[city_summary['%LiteracyRate'].idxmin()]

# 输出结果
print("合并计算后的城市识字率数据:")
print(city_summary)
print("\n识字率占比最低的城市:")
print(f"{lowest_literacy_city['Cities']},占比{lowest_literacy_city['%LiteracyRate']}%")

运行输出

合并计算后的城市识字率数据:
       Cities  LiteracyRate  %LiteracyRate
0     Belgium           0.8             80
1   Cape Town           0.75            75
2      Mumbai           0.65            65
3       Tokyo           0.31            31

识字率占比最低的城市:
Tokyo,占比31%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:10:55