【问题标题】:Python Dask Apply Function and STore Result in Same ColumnPython Dask 在同一列中应用函数和存储结果
【发布时间】:2021-01-17 15:24:14
【问题描述】:

您好,我对 Dask 有点陌生,我正在尝试做以下事情

我有一个 CSV 文件,我正在读取文件,一切正常

import pandas 
import os
import json

import math
import numpy as np

import dask
from dask.distributed import Client
import dask.dataframe as df
import dask.multiprocessing
client = Client(n_workers=3, threads_per_worker=4, processes=False, memory_limit='2GB')

df = df.read_csv("netflix_titles.csv")

现在我有功能了


def toupper(x):
    return x.upper()

我想将此应用于列现在问题是要将结果保存在同一列中似乎我不能这样做

df["title"].map(toupper).compute()

以下行有效,但我想要


df["title"] = df["title"].map(toupper).compute()

ValueError:并非所有分区都是已知的,无法对齐分区。请使用set_index设置索引。

图片

【问题讨论】:

  • 按照惯例,import dask.dataframe as dd 不是 as df

标签: dask dask-distributed dask-dataframe


【解决方案1】:

也许在read_csv之后试试这个。

df.title = df.title.map(toupper)
df.to_csv("netflix_titles.csv", index=False, single_file=True)

to_csv 有一个可选参数,默认值为compute=True,因此您无需显式地执行compute()

【讨论】:

  • 没有仍然给出错误或:并非所有分区都是已知的,无法对齐分区。请使用set_index 设置索引。 df.title = df["title"].map(toupper).compute()
  • @SoumilNitinShah 你能给我看看你的csv文件还是10行?你用的是哪个python和dask版本?
  • 感谢您回来我不确定是否可以将图像粘贴到 CSV 外观的评论中,但这是我的 dask 版本:2020.12.0
  • 我已将图片添加到说明中,请查看上图
  • @SoumilNitinShah 嘿,我仍然无法重现您的错误。但是,我注意到您正在使用 jupyter。您能否仔细检查您是否按照您期望的顺序执行单元格?并且没有意外地重新运行单元格。
猜你喜欢
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 2022-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
相关资源
最近更新 更多