|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 3
哦,原来这些 “所谓的空行” 是有点小聪明的,用数值占了序号,其他全是 `NaN`。就像一个满口胡说八道的小孩,我们需要专门针对这种情况来处理。那我们就用 Pandas 来个大扫除,把这些行给清理掉。下面是更新后的代码:
- import os
- import pandas as pd
- # 文件夹路径
- folder_path = r'd:\\wp\\csv2'
- # 获取文件夹下所有的 CSV 文件
- csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]
- custom_header = ['列1', '列2', '列3'] # 自定义列名,根据你的实际情况更改
- # 用于存储每个 CSV 文件的数据帧
- dfs = []
- # 遍历每个 CSV 文件
- for csv_file in csv_files:
- # 构造完整的文件路径
- file_path = os.path.join(folder_path, csv_file)
- # 读取 CSV 文件
- df = pd.read_csv(file_path, header=None, names=custom_header, skip_blank_lines=True)
- # 添加到数据帧列表中
- dfs.append(df)
- # 合并所有的数据帧
- merged_df = pd.concat(dfs, ignore_index=True)
- merged_df.columns = custom_header
- # 删除现有的序号列(如果有)
- if '序号' in merged_df.columns:
- merged_df = merged_df.drop(columns=['序号'])
- # 添加一个新的从1开始的序号列
- merged_df.insert(0, '序号', range(1, len(merged_df) + 1))
- # 删除所有非序号列都是 NaN 的行
- merged_df = merged_df.dropna(subset=custom_header[1:], how='all')
- # 合并后的 Excel 文件路径
- merged_xlsx_path = os.path.join(folder_path, '1423.xlsx')
- # 将合并后的数据帧保存为 Excel 文件
- merged_df.to_excel(merged_xlsx_path, index=False)
- print(f'合并后的 Excel 文件已保存到: {merged_xlsx_path}')
复制代码
这里重点来了:
- 使用 `dropna(subset=custom_header[1:], how='all')` 来删除那些除了序号之外全是 `NaN` 的行。
这样一来,那些假装有“序号”的空行就被彻底清理掉了。期待你的菜谱终于能做出美味的菜肴吧!继续加油,有任何问题随时问我哦!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|