一个名为1yue2.csv文件过长,使用pandas每100W行分割成若干个文件,有些行有问题,该问题为Expected 1 fields in line,saw 2,删除这些行的代码
时间: 2024-09-23 18:12:01 浏览: 60
使用实现pandas读取csv文件指定的前几行
当你遇到CSV文件过大并且包含错误行"Expected 1 fields in line, saw 2",表示每一行应该有1个字段,但实际上有2个字段,你可以使用Pandas库来处理这个问题。首先,你需要将大文件分割成小文件,并删除那些有问题的行。以下是一个Python脚本示例:
```python
import pandas as pd
# 设置分块大小
block_size = 1e6 # 1百万行
# 分批读取和处理大文件
for i in range(0, pd.read_csv('1yue2.csv', chunksize=block_size).itersplittables(), block_size):
chunk_df = pd.DataFrame(i)
# 删除有问题的行(即行数超过1的)
clean_chunk = chunk_df[chunk_df.shape[1] == 1]
# 保存到新的CSV文件中,每个文件只保留单字段行
output_filename = f'1yue2_split_{i+1}.csv'
clean_chunk.to_csv(output_filename, index=False)
# 如果你想删除原始的大文件,可以在这里添加一行
# os.remove('1yue2.csv')
#
阅读全文