: 'TextFileReader' object has no attribute 'itersplittables'
时间: 2024-09-24 12:05:53 浏览: 51
TextFileReader.exe
对不起,我的回答中有一个误解。`pd.read_csv`函数并不会直接返回一个`itersplittables`属性。实际上,如果你想要按块读取并处理大型CSV文件,你应该使用`read_csv`的`iterator`功能配合`chunks`参数,而不是`itersplittables`。这是正确的做法:
```python
import pandas as pd
# 每次读取100万行数据作为一块
for chunk in pd.read_csv('1yue2.csv', iterator=True, chunksize=1e6):
# 遍历每个数据块
for df in chunk:
# 检查是否有多于1列的行(异常行),并移除它们
cleaned_chunk = df[df.shape[1] == 1]
# 保存干净的数据块到新的文件
file_name = f'1yue2_split_{len(cleaned_chunk)}_.csv' # 使用当前块的数量作为文件名的一部分
cleaned_chunk.to_csv(file_name, mode='a', header=False if file_name.split('_')[1].isdigit() else True) # 追加写入,首次写入时设置header
# 对于原始文件的处理,你可以考虑在完成所有迭代后再进行相应操作
```
这里我们没有一次性读取整个文件到内存,而是每次处理一部分,这样可以降低内存消耗。
阅读全文