pd.read_csv加载太慢 如何提速
时间: 2024-10-13 17:02:38 浏览: 56
如果你在使用pandas的`read_csv`函数读取大型CSV文件时遇到性能问题,可以尝试以下几个优化技巧来提升速度:
1. **分块读取** (chunksize): 使用 `pd.read_csv()` 的 `iterator` 参数,并指定`chunksize`,一次只加载部分数据,然后逐块处理。例如:
```python
chunk_size = 10 ** 6 # 每次读取100万行
chunks = []
for chunk in pd.read_csv('large_file.csv', iterator=True, chunksize=chunk_size):
process(chunk) # 在这里对每一小块数据进行处理
```
2. **内存映射文件** (`memory_map`): 对于特别大的文件,可以将其视为内存映射文件,这样就不必将整个文件加载到内存中。使用`mmap`模块配合`numpy`处理:
```python
import numpy as np
with open('large_file.csv', 'r') as f:
data = np.fromfile(f, dtype=np.float32, count=-1)
# 数据处理...
```
3. **并行化处理** (Dask DataFrame 或 joblib): 对于大数据集,考虑使用分布式计算工具如 Dask 来并行读取和处理数据。
4. **硬件加速** (如 SSD 硬盘): 如果数据存储在固态硬盘上,相比传统的机械硬盘,读取速度会大大提高。
5. **减少数据转换**: 尽量避免在读取过程中进行复杂的转换操作,因为这可能会显著增加处理时间。
6. **优化列选择**: 只读取你需要的数据列,避免不必要的数据加载。
记住,在优化之前,先确认是否有足够的磁盘空间和内存可用。
阅读全文