【问题标题】:Iterate through a dask series (getting unique values from dask series to list)遍历 dask 系列(从 dask 系列获取唯一值以列出)
【发布时间】:2019-10-18 08:34:30
【问题描述】:

我需要遍历 dask 数据框中的唯一值。我使用 .unique() 来获取列的唯一值,但现在我得到了一个无法用于迭代的 dask 对象。我需要知道如何将这些唯一值从这个 dask 对象中获取到一个列表(或类似的东西)中,以便我可以使用这些值来遍历 dask 数据框。

df = dd.read_csv('file.csv')
df.column1.unique()
for unique_value in column1_array:
    print(unique_value)

这是我得到的错误: NotImplementedError: Series getitem in 仅支持具有匹配分区结构的其他系列对象

【问题讨论】:

    标签: python dask


    【解决方案1】:

    此问题已在 dask=2.3 中解决。

    In [1]: import pandas as pd
       ...: import dask.dataframe as dd
       ...: import dask
    
    In [2]: dask.__version__
    Out[2]: '2.3.0'
    
    In [3]: df = pd.DataFrame({"temp1":[1,2,2,4],"temp2":[1,2,2,4]})
       ...: ddf = dd.from_pandas(df,npartitions=2)
       ...: for unique_value in ddf.temp1.unique():
       ...:     print(unique_value)
       ...:     
    1
    2
    4
    

    【讨论】:

      【解决方案2】:

      您可以使用 .compute() 方法将 Dask Series 转换为 Pandas Series 对象,然后对其进行迭代。

      for x in s.compute():
          ...
      

      https://docs.dask.org/en/latest/dataframe-best-practices.html#reduce-and-then-use-pandas

      还有iteritemsiterrows方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-05
        • 2020-02-18
        • 2021-12-23
        • 2017-10-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-14
        相关资源
        最近更新 更多