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

如何将城市数据列表转换为结构化的pandas DataFrame

解决方法

可以通过字符串解析+正则匹配的方式提取所需字段,再构建结构化DataFrame,具体步骤如下:

步骤1:导入依赖

import pandas as pd
import re

步骤2:定义原始数据

List = ['City   Population', '1   New York, NY   8,175,133   \xa0Biggest city is 2.6% of U.S. population', '2   Los Angeles, CA   3,792,621   \xa0Top 2 cities are 3.8% of U.S. population', '3   Chicago, IL   2,695,598   \xa0Top 3 cities are 4.7% of U.S. population']

步骤3:解析数据行

跳过列表第一个无效表头,用正则匹配每行的排名、城市、人口:

# 定义正则模式:匹配 排名(数字) + 城市名(任意字符直到人口) + 人口(带逗号的数字)
pattern = r'^(\d+)\s+(.*?)\s+([\d,]+)\s+.*$'

processed_data = []
for line in List[1:]:  # 跳过第一个表头行
    match = re.match(pattern, line)
    if match:
        rank = match.group(1)
        city = match.group(2)
        population = match.group(3)
        processed_data.append([rank, city, population])

步骤4:构建结构化DataFrame

df = pd.DataFrame(processed_data, columns=['RANK', 'CITY', 'POPULATION'])
print(df)

输出结果

RANK           CITY POPULATION
0    1     New York, NY  8,175,133
1    2  Los Angeles, CA  3,792,621
2    3      Chicago, IL  2,695,598

补充说明

如果完整列表里存在特殊格式的行,正则可以适当调整,但当前模式能覆盖示例里的所有情况。也可以用str.split()方式拆分,但正则更稳定,能避免城市名含空格的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:46:04