python - 加载大型数据集和使用 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 个内核的机器上运行它,我想知道是否有更优化的方法来加载这个大型数据集并对每一行执行相同的操作?
提前感谢您的帮助,让我知道我还能提供什么!
解决方案
推荐阅读
- google-bigquery - 如何通过 API 或 SQL 查询获取模型元数据
- r - 如何修复 R 中关于 spakly 模型的错误
- c# - Azure 空间锚点基本演示中无法“捕获更多环境数据”
- android-studio - Android Studio 找不到 Android Studio 项目文件
- android - 使用 Fuel 的 http 请求
- vue.js - v-for 中的输入绑定
- reactjs - 有没有办法等待在 Jest/Enzyme 中触发异步功能的事件?
- laravel - 自定义注册控制器中的 Laravel 电子邮件验证不起作用
- python-3.x - 为什么 Keras 会告诉我“ValueError: setting an array element with a sequence”。尽管所有数组都是 numpy 数组?
- node.js - Linux Node JS 在端口 80 上侦听,但不在其他端口上