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

如何将爬虫获取的汽车数据列表转换为指定结构的pandas dataframe

爬取车辆信息转Pandas DataFrame实现方案

推荐直接在爬取阶段收集数据,不需要额外处理打印后的输出,实现代码如下:

import pandas as pd
import requests

# 初始化存储所有车辆信息的列表
car_list = []

for url in urls:
    page = requests.get(url)
    # 此处保留你原有获取car对象和car_table列表的逻辑
    # 将car_table的[属性,值,属性,值]结构转为字典
    car_attr_dict = dict(zip(car_table[::2], car_table[1::2]))
    # 补充车辆名称字段
    car_attr_dict['name'] = car.name
    car_list.append(car_attr_dict)

# 转换为DataFrame,自动适配所有属性列
car_df = pd.DataFrame(car_list)
# 若需要将车辆名称设为行索引,执行以下代码
car_df = car_df.set_index('name')
# 若需要去除属性值的kg、cm单位后缀,执行以下代码
car_df = car_df.replace(r'(kg|cm)$', '', regex=True)

如果已经有打印好的输出文本需要处理,实现代码如下:

import pandas as pd
from ast import literal_eval

# 读取输出文本,此处假设输出保存在output.txt中
with open('output.txt', 'r', encoding='utf-8') as f:
    content_lines = [line.strip() for line in f.readlines() if line.strip()]

car_list = []
for idx in range(0, len(content_lines), 2):
    # 读取车辆名
    car_name = content_lines[idx]
    # 将字符串格式的列表转为实际列表对象
    car_table = literal_eval(content_lines[idx+1])
    # 同爬取阶段的转换逻辑
    car_attr_dict = dict(zip(car_table[::2], car_table[1::2]))
    car_attr_dict['name'] = car_name
    car_list.append(car_attr_dict)

car_df = pd.DataFrame(car_list).set_index('name').replace(r'(kg|cm)$', '', regex=True)

两种方案都不需要提前知道属性数量和车辆数量,会自动适配所有数据生成对应结构的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:27:01