一个名为1yue2.csv文件过长,使用pandas每100W行分割成若干个文件的代码,当遇到有问题的行时删除这个行
时间: 2024-09-23 17:12:55 浏览: 38
pandas_data.zip
当你有一个大CSV文件如1yue2.csv,想要将其按每100万行分割,并且在处理过程中发现有问题的行需要删除时,可以使用Pandas库结合`read_csv`、`to_csv`以及一些条件判断来完成这个任务。这里是一个简单的示例:
```python
import pandas as pd
# 设置初始列名
header = pd.read_csv('1yue2.csv', nrows=1, header=0).columns.tolist()
# 分隔并删除有问题的行
chunksize = 1000000
i = 0
for chunk in pd.read_csv('1yue2.csv', chunksize=chunksize):
i += 1
# 检查问题行,这里假设有问题的是某一行值为NaN
problematic_rows = chunk.loc[chunk.isna().any(axis=1)]
# 删除有问题的行
chunk = chunk.dropna() if not problematic_rows.empty else chunk
# 保存处理后的数据到新的csv文件,文件名为原始文件加上当前的序列号
chunk.to_csv(f'1yue2_part_{i}.csv', index=False, header=header)
```
在这个例子中,我们首先读取CSV的第一行作为头信息,然后循环读取每100万行数据。如果找到有问题的行(这里简单地通过检查是否有NaN值),我们就先删除它们;如果没有问题,则直接保存。每个处理过的部分会被保存到单独的新文件中。
阅读全文