首页 > 解决方案 > 加载大型数据集和使用 dask.delayed 的最佳实践

问题描述

我有一个csv包含 550,000 行文本的文件。我将它读入一个 pandas 数据帧,循环它,并对其执行一些操作。这是一些示例代码:

import pandas as pd

def my_operation(row_str):
   #perform operation on row_str to create new_row_str
   return new_row_str

df = pd.read_csv('path/to/myfile.csv')
results_list = []
for ii in range(df.shape[0]):
   my_new_str = my_operation(df.iloc[ii, 0])
   results_list.append(my_new_str)

我开始实施dask.delayed,但在阅读了延迟的最佳实践部分之后,我不确定我是否dask.delayed以最优化的方式来解决这个问题。这是相同的代码dask.delayed

import pandas as pd
import dask

def my_operation(row_str):
   #perform operation on row_str to create new_row_str
   return new_row_str

df = pd.read_csv('path/to/myfile.csv')
results_list = []
for ii in range(df.shape[0]):
   my_new_str = dask.delayed(my_operation)(df.iloc[ii, 0])
   results_list.append(my_new_str)

results_list = dask.compute(*results_list)

我在一台有 8 个内核的机器上运行它,我想知道是否有更优化的方法来加载这个大型数据集并对每一行执行相同的操作?

提前感谢您的帮助,让我知道我还能提供什么!

标签: pythondaskdask-delayed

解决方案


推荐阅读