小编sch*_*_90的帖子

如何使用多列作为函数输入将自定义函数应用于 dask 数据框中的组

我有一个非常大的数据框,正在使用dask处理。数据框大体上看起来像这样:

Col_1    Col_2   Bool_1   Bool_2
A        1       True     False
B        1       True     True
C        1       False    False
D        1       True     False
A        2       False    True
B        2       False    False
C        2       True     False
D        2       True     True
Run Code Online (Sandbox Code Playgroud)

但它有数百万行。

我在代码的这一点上想做的是计算中形成的每个组之间的Jaccard 距离Bool_1和。这是因为该程序的目的是为其中存在的每个组生成一行(每行都有多个统计数据,我仅报告相关列)。Bool_2Col_2Col_2

为此,我首先Col_2使用来对数据帧进行分组df.groupby("Col_2"),但随后我不知道如何继续。到目前为止,我尝试的每一次尝试都引发了错误。

1:我尝试定义一个函数compute_jacc_dist()并将其传递apply(compute_jacc_dist, axis=1)给组,但它在 args 和 kwargs 方面存在问题(尤其是轴,请参阅https://github.com/dask/dask/issues/1572,我还无法解决)。

2:我尝试使用它来计算和from dask_distance import jaccard之间的 J 距离,但它会产生奇怪的结果(即使没有交集,每个组也会返回 J=1)。Bool_1Bool_2 …

python group-by dataframe pandas dask

2
推荐指数
1
解决办法
2861
查看次数

标签 统计

dask ×1

dataframe ×1

group-by ×1

pandas ×1

python ×1