返回更改的CSV的名称
我有10,000个CSV文件,我必须在熊猫中打开,并使用PANDAS的某些功能操纵/转换,并将新输出保存到CSV。我可以使用并行过程(Windows)使工作更快吗?我尝试了以下内容,但没有运气:
import pandas pd
import multiprocessing
def proc_file(file):
df = pd.read_csv(file)
df = df.reample('1S', how='sum')
df.to_csv('C:\newfile.csv')
if __name__ == '__main__':
files = ['C:\file1.csv', ... 'C:\file2.csv']
for i in files:
p = multiprocessing.Process(target=proc_file(i))
p.start()
我认为我对Python中的多处理没有很好的了解。
请确保以后也关闭池:
import multiprocessing
# Maximum number of cpus to use at a time
max_threads = multiprocessing.cpu_count() - 1
pool = multiprocessing.Pool(max_threads)
list_files = pool.map(func,list_of_csvs)
pool.close()
pool.join()
list_files可以包含一个列表,例如您可以从func()
也许是这样的东西:
p = multiprocessing.Pool()
p.map(prof_file, files)
对于此尺寸,您确实需要一个流程池,以便启动过程的成本被其工作所抵消。多处理。pool确实可以做到这一点:它将任务并行性(这是您正在做的)转换为任务并行性。