相关疑难解决方法(0)

在dask中改组数据

这是Subsetting Dask DataFrames的后续问题.我希望在将数据批量发送到ML算法之前对来自dask数据帧的数据进行混洗.

该问题的答案是做以下事情:

for part in df.repartition(npartitions=100).to_delayed():
    batch = part.compute()
Run Code Online (Sandbox Code Playgroud)

然而,即使我要改变批次的内容,我也有点担心它可能不太理想.数据是一个时间序列集,因此数据点在每个分区内高度相关.

理想情况下我喜欢的是:

rand_idx = np.random.choice(len(df), batch_size, replace=False)
batch = df.iloc[rand_idx, :]
Run Code Online (Sandbox Code Playgroud)

哪个适用于熊猫,但不适用于dask.有什么想法吗?

编辑1:潜在的解决方案

我试过了

train_len = int(len_df*0.8)
idx = np.random.permutation(len_df)
train_idx = idx[:train_len]
test_idx = idx[train_len:]
train_df = df.loc[train_idx]
test_df = df.loc[test_idx]
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试这样做,则train_df.loc[:5,:].compute()返回一个124451行数据帧.所以显然使用dask错了.

python dask

7
推荐指数
1
解决办法
1136
查看次数

dask DataFrame相当于pandas DataFrame sort_values

对于dask DataFrame,pandas中的sort_values相当于什么?我正在尝试扩展一些具有内存问题的Pandas代码,而不是使用dask DataFrame.

相当于:

ddf.set_index([col1, col2], sorted=True)
Run Code Online (Sandbox Code Playgroud)

python dask

5
推荐指数
2
解决办法
3764
查看次数

标签 统计

dask ×2

python ×2