首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何有效地将大型DataFrame列作为值列表发送给函数

如何有效地将大型DataFrame列作为值列表发送给函数
EN

Stack Overflow用户
提问于 2016-12-31 09:37:06
回答 1查看 313关注 0票数 1

我试图在DataFrame列上找到一个统计量(基尼系数),其中我需要传递特定列的所有值才能计算统计量(基尼系数)。

在这里,统计函数需要“值列表”并返回整数。为了从DataFrame列收集值列表,我尝试了以下2种方法。

方法1:

  1. 从DataFrame中选择列。
  2. 把它交给RDD。
  3. 将每个值映射到(1,值)
  4. groupByKey来聚合所有值。
  5. 将聚合值发送到统计函数以计算统计量。

办法2:

  1. 从DataFrame中选择列。
  2. 把它交给RDD。
  3. 执行收集操作以聚合值。
  4. 将聚合值发送到统计函数以计算统计量。

但这两种方法的效果似乎都非常缓慢。

请您分享一下您的建议或其他有效的方法。

你好,尼拉杰

EN

回答 1

Stack Overflow用户

发布于 2017-07-31 19:40:11

如果对数据进行了排序,并且没有负或零,则可以使用本页中描述的第三个公式计算基尼系数:

methods/gini.htm

Python的实现可在https://github.com/oliviaguest/gini上使用。

使用dataframe的df.groupBy().sum()操作计算和是很容易的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41407135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档