gpt4 book ai didi

python - Pandas-Dask DataFrame 应用函数并返回列表

转载 作者:行者123 更新时间:2023-12-01 08:56:21 27 4
gpt4 key购买 nike

我正在尝试将多个列添加到 dask 数据框中以存储 apply 函数的结果。这是我关于堆栈溢出的第一个问题,我希望这不会太长!

目前我有这段工作代码:

from dask import dataframe as dd
from multiprocessing import cpu_count
nCores = cpu_count()

import dask.multiprocessing
dask.config.set(scheduler='processes')

def dfFunc(varA, varB):
# Some calculations...
return NewValue

ddf = dd.from_pandas(weather,npartitions=nCores)
ddf['NewCol1'] = ddf.map_partitions(lambda df: df.apply(lambda x: dfFunc(x['VarA'],x['VarB']), axis=1))
res = ddf.compute()

本质上,我从 pandas 数据帧“天气”创建 dask 数据帧,然后将函数“dfFunc”应用于数据帧的每一行。

这段代码工作正常,因为输出“res”是原始天气数据帧,其中有一个名为“NewCol1”的新列。

我的困惑在于,如果我希望我的函数返回一个列表而不是单个值,那么我该如何在 dask 数据框中创建多个列。

从之前的线程来看,通过使用列表,这应该是向 Pandas Dataframe 添加列。因此改变线路

return NewValue
ddf['newCol1'] =

至以下内容:

return [NewValue1,NewValue2]
ddf =

但是,它似乎与 dask 数据框配合得不太好,或者我只是不知道如何正确编码,因为我最终得到了一个包含值列表的列。

X    Y    
val val [NewValue1,NewValue2]

作为奖励,我也想在此过程中为这些列分配名称,但由于 ddf.compute() 返回一个 pandas 数据框,此后添加列名称应该不会太困难。

最佳答案

看来我在堆栈溢出上已经错过了一个类似的问题。好吧,至少有一个问题可以解决这个问题。

Dask Dataframe split column of list into multiple columns

关于python - Pandas-Dask DataFrame 应用函数并返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52748400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com