RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1608970
Accepted
babyborn
babyborn
Asked:2025-03-20 00:16:33 +0000 UTC2025-03-20 00:16:33 +0000 UTC 2025-03-20 00:16:33 +0000 UTC

如何通过城市名称获取其人口?

  • 772

有一个文本文件,每行包含一个城市列表:

Абаза
Абакан
Абдулино
Абинск
Агидель
...

它是从页面ru.wikipedia.org/wiki/Спиок_городов_России解析而来的。

城市的顺序与页面上的顺序相同。如何获取每个城市的人口?

我逐行阅读了文件,下一步做什么?

with open('C:\\cities.txt', 'r',encoding="utf8") as f:
    nums = f.read().splitlines()
python
  • 1 1 个回答
  • 52 Views

1 个回答

  • Voted
  1. Best Answer
    Vitalizzare
    2025-03-20T01:54:22Z2025-03-20T01:54:22Z

    类似的案件可以在 的帮助下成功解决pandas.read_html。此函数的结果将是页面上的表格列表。维基百科通常组织得很好,很容易找到你需要的表格。在您的情况下,此列表中的前两个将是重要的,其中第一个是具有独立城市的主要城市,第二个是联邦重要城市内的城市(它们不被视为独立的,也不在第一个表中)。

    清理时,您需要考虑到城市人口以空格作为数字组之间的分隔符,并且某些数字带有方括号中的脚注,例如"13 010 112[2]"。

    import pandas as pd
    
    href = r'https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%BE%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8'
    data = pd.read_html(href)
    
    df_main = data[0].copy()
    df_main.columns = ['index', 'crest', 'city', 'region', 'district', 'population', 'antiquity', 'status', 'former_names']
    df_main = df_main.set_index('index').drop('crest', axis=1)
    df_main['population'] = (
        df_main['population']
        .str.replace(' ', '')
        .str.split('[').str[0]
        .astype(int)
    )
    print(df_main.sort_values('population', ascending=False)[['city', 'population']].head())
    
                      城市人口
    指数                             
    608 莫斯科 13010112
    832 圣彼得堡 5601911
    677 新西伯利亚 1633595
    278 叶卡捷琳堡 1544376
    355 喀山 1308660
    

    data[1]您可以以类似的方式处理包含联邦重要城市内的城市的表格。它们之间的区别在于第四个字段的名称(第一个字段为"Регион",第二个字段为 - "ГФЗ")。如果统一此字段的名称并添加一个指示保险表编号的附加字段,则可以使用将两者安全地组合成一个表pandas.concat。在分析之前,您应该阅读页面上的脚注,以了解第二个表中联邦城市的人口与下属城市的人口相比如何。

    • 4

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5