【问题标题】:Factorize on Dask DataFrames分解 Dask DataFrames
【发布时间】:2021-03-27 00:14:46
【问题描述】:

我正在尝试使用 factorize 函数对 pandas 数据框中的一列进行因式分解,以便我可以从 0 开始具有唯一值。我的问题是是否有办法在 Dask Dataframes 上复制相同的值?

【问题讨论】:

  • 示例 1) 您拥有的数据,2) 您想要的结果,以及 3) 您尝试过的会有所帮助的示例

标签: python pandas dataframe dask dask-dataframe


【解决方案1】:

因式分解需要一个唯一值的列表,可以用.unique()得到,然后用.compute()转换成pandas意味着我们可以应用factorize方法:

import pandas as pd
import dask.dataframe as dd

cat = pd.Series(['a', 'a', 'c'])

# calculate uniques
uniques_dask = dd.from_pandas(cat, npartitions=3).unique().compute()

# simple pandas
codes, uniques = pd.factorize(uniques_dask)

# create a mapping
mapping = {k:v for k,v in zip(uniques, codes)}

# apply the mapping
dd.from_pandas(cat, npartitions=3).replace(mapping).compute()

【讨论】:

    猜你喜欢
    • 2017-10-05
    • 2019-09-03
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多