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

已提取TSA网站乘客数据,如何正确加载至Pandas DataFrame?

解决TSA乘客数据提取与Pandas规范表格生成问题

先修正数据提取的核心问题

你当前的代码里,doc(".views-align-center").text()会把所有匹配单元格的文本合并成一个无结构的大字符串(所有换行、单元格分隔都变成了空格),这直接导致后续的字符串拆分完全混乱,所以方法1和方法2都无法生成规范表格,得先从数据提取环节修正。

正确的提取与转换步骤

直接按表格的行结构提取数据,再转成DataFrame:

from pyquery import PyQuery as pq
import requests
import pandas as pd

url = "https://www.tsa.gov/travel/passenger-volumes"
content = requests.get(url).content
doc = pq(content)

# 遍历表格的每一行(tbody下的tr)
row_items = doc("tbody tr").items()
table_data = []
for row in row_items:
    # 提取当前行所有目标单元格的文本,去除首尾空白
    cell_texts = [cell.text().strip() for cell in row(".views-align-center").items()]
    # 跳过空行
    if cell_texts:
        table_data.append(cell_texts)

# 提取表头文本作为列名
header_texts = [header.text().strip() for header in doc("thead th").items()]

# 直接生成规范的DataFrame
df = pd.DataFrame(table_data, columns=header_texts)
print(df.head())

针对你提出的两种方法的分析

  1. 方法1与unstack的可行性
    方法1的代码pd.DataFrame([x.split(' ') for x in Passengers.split(' ')])会把每个空格都作为拆分依据,得到的是一堆零散的字符串组成的二维列表,结构完全不符合表格的行列逻辑。unstack是用来处理多层索引数据的转置,对这种无结构的拆分结果完全无效,所以这种方式不可行。

  2. 方法2的问题
    方法2只是把空格替换成分号,但原始的Passengers已经丢失了行的分隔信息(text()方法会把原表格的换行全部转成空格),即使替换成分号,也无法区分哪些内容属于同一行,后续无法正确拆分出每行数据,所以方法2也不是有效方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 07:13:30