在pyspark中使用groupby基于过滤的行创建具有最大值的新列

什么时候

我有一个spark数据框

import pandas as pd
foo = pd.DataFrame({'id': [1,1,2,2,2], 'col': ['a','b','a','a','b'], 'value': [1,5,2,3,4],
'col_b': ['a','c','a','a','c']})

我想创建一个新的列max,该value列的由分组id但是我max value想要那些col==col_b

我的结果spark数据框应如下所示

foo = pd.DataFrame({'id': [1,1,2,2,2], 'col': ['a','b','a','a','b'], 'value': [1,5,2,3,4],
'max_value':[1,1,3,3,3], 'col_b': ['a','c','a','a','c']})

我试过了

from pyspark.sql import functions as f
from pyspark.sql.window import Window
w = Window.partitionBy('id')
foo = foo.withColumn('max_value', f.max('value').over(w))\
    .where(f.col('col') == f.col('col_b'))

但是我最终失去了一些行。

有任何想法吗 ?

黑主教

使用when功能进行条件汇总max

from pyspark.sql import Window
from pyspark.sql import functions as F

w = Window.partitionBy('id')

foo = foo.withColumn('max_value', F.max(F.when(F.col('col') == F.col('col_b'), F.col('value'))).over(w))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在pyspark数据框中添加具有另一列最大值的新列

来自分类Dev

Python Pandas:基于组内的最大值创建新列,但使用其他(字符串)列中的值

来自分类Dev

R:具有最大值的列和行索引

来自分类Dev

如何获得具有列最大值的行?

来自分类Dev

返回具有一列最大值的行

来自分类Dev

R:具有最大值的列和行索引

来自分类Dev

TSQL:获取具有最大值的列的行

来自分类Dev

选择具有最大值保存不同列的行

来自分类Dev

检索一列具有最大值的行

来自分类Dev

如何创建具有不同值的新表,但从另一列中选择最大值

来自分类Dev

如何使用Python获取具有最大值的行?

来自分类Dev

使用awk,uniq和sort获取列中具有最大值的行

来自分类Dev

使用EXISTS来获取给定列中具有最大值的行

来自分类Dev

使用管道选择第1列中具有最大值的行

来自分类Dev

SQL:使用最大值过滤行

来自分类Dev

获取具有最大值的行

来自分类Dev

使用流过滤基于条件的最大值列表

来自分类Dev

熊猫:过滤每个类别具有最大值的行

来自分类Dev

pyspark-使用最大值为列创建从0到该值的行值循环,并为其重复其他列值

来自分类Dev

在Pandas数据框中使用groupby,但它会创建多个具有相同值的行

来自分类Dev

过滤在JavaScript中具有最大值的数组项

来自分类Dev

在 tableau 中使用具有多个值的列创建过滤器

来自分类Dev

在pyspark中使用自定义顺序选择最大值/最大值

来自分类Dev

选择具有最大值的行,其中两列的值相同

来自分类Dev

使用dplyr过滤最大值之前的所有值

来自分类Dev

从行窗口获取最大值作为所有行的新列

来自分类Dev

返回所有行具有最大值的列索引(反向一键编码)

来自分类Dev

Pyspark基于具有列表或集合的多个条件的其他列创建新列

来自分类Dev

在SQL Server视图中使用GROUP BY返回具有最大值的记录

Related 相关文章

  1. 1

    在pyspark数据框中添加具有另一列最大值的新列

  2. 2

    Python Pandas:基于组内的最大值创建新列,但使用其他(字符串)列中的值

  3. 3

    R:具有最大值的列和行索引

  4. 4

    如何获得具有列最大值的行?

  5. 5

    返回具有一列最大值的行

  6. 6

    R:具有最大值的列和行索引

  7. 7

    TSQL:获取具有最大值的列的行

  8. 8

    选择具有最大值保存不同列的行

  9. 9

    检索一列具有最大值的行

  10. 10

    如何创建具有不同值的新表,但从另一列中选择最大值

  11. 11

    如何使用Python获取具有最大值的行?

  12. 12

    使用awk,uniq和sort获取列中具有最大值的行

  13. 13

    使用EXISTS来获取给定列中具有最大值的行

  14. 14

    使用管道选择第1列中具有最大值的行

  15. 15

    SQL:使用最大值过滤行

  16. 16

    获取具有最大值的行

  17. 17

    使用流过滤基于条件的最大值列表

  18. 18

    熊猫:过滤每个类别具有最大值的行

  19. 19

    pyspark-使用最大值为列创建从0到该值的行值循环,并为其重复其他列值

  20. 20

    在Pandas数据框中使用groupby,但它会创建多个具有相同值的行

  21. 21

    过滤在JavaScript中具有最大值的数组项

  22. 22

    在 tableau 中使用具有多个值的列创建过滤器

  23. 23

    在pyspark中使用自定义顺序选择最大值/最大值

  24. 24

    选择具有最大值的行,其中两列的值相同

  25. 25

    使用dplyr过滤最大值之前的所有值

  26. 26

    从行窗口获取最大值作为所有行的新列

  27. 27

    返回所有行具有最大值的列索引(反向一键编码)

  28. 28

    Pyspark基于具有列表或集合的多个条件的其他列创建新列

  29. 29

    在SQL Server视图中使用GROUP BY返回具有最大值的记录

热门标签

归档