使用Pandas读取含多表的CSV报错,求合并多表解决方案
解决CSV双表合并问题
当CSV文件包含两个由双空行分隔的表格时,直接使用pd.read_csv()会因列数不匹配报错,可按以下步骤处理:
1. 下载并拆分文件内容
先通过请求获取文件内容,按行拆分后定位双空行的分割位置:
import pandas as pd import requests from io import StringIO url = "你的目标CSV文件URL" # 下载文件内容 response = requests.get(url) lines = response.text.splitlines() # 定位两张表的分割点(双空行位置) split_pos = None for idx in range(len(lines)-1): if not lines[idx].strip() and not lines[idx+1].strip(): split_pos = idx break
2. 分别读取两张表格
基于分割点拆分内容,过滤空行后用StringIO转为pandas可读取的格式:
# 读取第一张表,过滤空行 table1_content = "\n".join([line for line in lines[:split_pos] if line.strip()]) table1 = pd.read_csv(StringIO(table1_content)) # 读取第二张表,过滤空行 table2_content = "\n".join([line for line in lines[split_pos+1:] if line.strip()]) table2 = pd.read_csv(StringIO(table2_content))
3. 合并表格
若两张表格列结构一致,直接合并:
merged_table = pd.concat([table1, table2], ignore_index=True)
注意事项
- 如果两张表格列名或列数不一致,需先统一列结构(比如重命名列、补充缺失列)再合并
- 若文件中存在多组连续空行,可调整分割点的判断逻辑,比如检测连续空行的起始位置
内容的提问来源于stack exchange,提问作者Mustard Tiger
相关产品推荐
相关产品推荐

