pandas批量处理网页表格新增列丢失数据、merge报错如何解决?
多网页表格数据批量提取合并解决方案
错误原因
- 第一版代码问题:你定义了空列表但没有把每次循环生成的单页数据追加到列表中,循环结束后仅保留了最后一个url的处理结果,所以只输出了最后一部电影的数据。
- 第二版代码问题:
pd.merge()是用于合并两个存在关联键的DataFrame的方法,必须传入两个待合并的DataFrame,你的场景是纵向拼接多个结构完全相同的DataFrame,不需要用merge,应该用pd.concat()。
正确实现代码
依赖导入与参数定义
import pandas as pd # 目标网页列表 url_list = [ 'https://www.latlong.net/location/10-cloverfield-lane-locations-553', 'https://www.latlong.net/location/10-things-i-hate-about-you-locations-250', 'https://www.latlong.net/location/12-angry-men-locations-818' ]
核心处理逻辑
# 缓存每个页面的处理结果 df_buffer = [] for page_url in url_list: # 读取页面第一个表格 page_df = pd.read_html(page_url)[0] # 新增movie列,填充当前页面对应的电影标识 page_df['movie'] = page_url.split('/')[-1] df_buffer.append(page_df) # 拼接所有数据,重置连续索引 result_df = pd.concat(df_buffer, ignore_index=True)
运行后直接输出result_df即可得到符合预期的完整结果,索引会自动按顺序重排。
内容的提问来源于stack exchange,提问作者Stackcans
相关产品推荐
相关产品推荐

