python实现pandas读E:123路径下的多个文件怎么使用多进程
时间: 2023-11-27 13:53:06 浏览: 31
使用多进程可以加速读取多个文件的过程。下面是一个示例代码,使用了`multiprocessing`库和`pandas`库:
```python
import os
import multiprocessing as mp
import pandas as pd
def read_file(file_path):
df = pd.read_csv(file_path)
return df
if __name__ == '__main__':
# 设置文件路径
folder_path = 'E:/123'
file_paths = [os.path.join(folder_path, f) for f in os.listdir(folder_path)]
# 使用多进程读取文件
pool = mp.Pool(processes=4) # 设置进程数
results = [pool.apply_async(read_file, args=(file_path,)) for file_path in file_paths]
output = [p.get() for p in results]
# 合并结果
df = pd.concat(output, ignore_index=True)
```
这段代码首先获取文件夹下的所有文件路径,然后使用`multiprocessing.Pool`创建进程池,每个进程调用`read_file`函数读取一个文件,并将结果保存在`output`列表中。最后使用`pd.concat`函数将所有结果合并成一个`DataFrame`对象。
需要注意的是,`pandas`在处理大文件时可能会占用大量内存,因此在使用多进程时需要根据机器资源和文件大小合理设置进程数。