jupyter notebook读取表格缓慢
时间: 2025-03-06 09:38:27 浏览: 61
### 提高 Jupyter Notebook 读取 CSV 或 Excel 表格速度的方法
#### 使用适当的数据类型
当使用 `pandas` 的 `read_csv()` 函数时,可以通过指定列的数据类型来减少内存占用并加快加载时间。这可以显著提升性能。
```python
import pandas as pd
data_types = {
'column_1': 'int32',
'column_2': 'float32',
'column_3': 'category'
}
df = pd.read_csv('large_file.csv', dtype=data_types)[^1]
```
#### 利用分块处理大文件
对于非常大的文件,一次性读取整个文件可能会消耗大量时间和资源。采用分批读取的方式能够有效缓解这一情况:
```python
chunk_size = 10 ** 6 # 每次读取一百万行
chunks = []
for chunk in pd.read_csv('very_large_file.csv', chunksize=chunk_size):
chunks.append(chunk)
df = pd.concat(chunks, ignore_index=True)
```
#### 只导入必要的列
如果不需要所有的列,则可以在调用 `pd.read_csv()` 或者 `pd.read_excel()` 方法的时候利用参数 `usecols` 来只选择所需的特定几列,从而加速读取过程。
```python
columns_to_use = ['col_a', 'col_b']
df = pd.read_csv('file_with_many_columns.csv', usecols=columns_to_use)
# 对于Excel文件同样适用
df = pd.read_excel('example.xlsx', usecols="A:C")
```
#### 考虑其他高效存储格式
有时将数据转换成更高效的二进制格式如 HDF5 (.h5) 或 Feather 文件会带来更好的性能表现。这些格式专为快速序列化而设计,并且可以直接被 Pandas 打开。
```python
# 将原始CSV转储到HDFStore中
store = pd.HDFStore('mydata.h5')
store.put('dataset_key', df)
store.close()
# 后续可以从HDFStore迅速恢复DataFrame对象
stored_df = pd.read_hdf('mydata.h5', 'dataset_key')
```
#### 预先设置索引
提前定义好哪些列为索引可以帮助优化查询效率,尤其是在后续操作频繁涉及某些字段作为条件筛选的情况下。
```python
df = pd.read_csv('some_data.csv', index_col='id_column')[^1]
```
阅读全文
相关推荐














