gpt4 book ai didi

python - 数据帧上的 Dask 方法返回应用方法结果的字典

转载 作者:行者123 更新时间:2023-12-01 02:52:19 24 4
gpt4 key购买 nike

我有一个创建值列表的函数。这是当给定数据帧中的一行时,此类函数可能执行的操作的简化版本。

def generate_key_list_pair(row):
some_list = do_something_to_make_a_list(row)
return some_list

然后我想将该方法应用于 Dask 数据框中的所有行并返回一个字典,以便:

ddf.apply(generate_key_list_pair)

...将返回一个字典,其键是行 ID,其值是每行应用函数的结果,例如:

{
1: [3.0, 4.12, 5.2, 23.1, 4.9],
...
n: [9.34, 8.12, 3.42, 12.1, 34.2]
}

其中 1n 是传递到每个 generate_key_list_pair 的行 Series 对象中的 id 列值函数调用。

编辑:1...n 可以是原始数据帧中的列中存在的唯一标识符。

最佳答案

apply 这样的 Dask-Dataframe 方法通常会给你返回更多的数据帧,这不是你在这种情况下所追求的。但是,您可以访问组成的 pandas 数据帧并仍然维护调度程序/并行操作:

def dict_from_part(df):
d2 = df.set_index('id_column').apply(do_something_to_make_a_list, axis=1)
# d2 is a series, so long as the number of elements of the lists
# isn't accidentally the same as the number of columns
return d2.to_dict()

parts = [delayed(dict_from_part)(df) for df in ddf.to_delayed()]

现在 parts 是一个延迟对象的列表,每个对象都可以按照您的需要计算-d到字典中。如果您想组合这些字典,则需要创建元组(例如 items())并对它们求和。

关于python - 数据帧上的 Dask 方法返回应用方法结果的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44617771/

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