【问题标题】:Aggregate column on rows with condition在有条件的行上聚合列
【发布时间】:2021-12-10 07:07:57
【问题描述】:

我有以下数据框:

Country    Qty     

Belgium    54                       
Belgium    8                      
Belgium    67                      
France     12                       
France     3                      
France     34
Italy      25
Italy      45
Italy       9

是否可以按“国家”列对这个数据框进行分组,比利时的“数量”输出平均数量的聚合平均值?我正在使用 Spark Python。

【问题讨论】:

    标签: python-3.x apache-spark pyspark


    【解决方案1】:

    这个问题已经解决了!

    df.filter(df['country'] == 'Belgium').agg(avg(col("Qty")
    

    【讨论】:

    • 答案需要更多描述。
    【解决方案2】:
    from pyspark.sql import functions as F
    
    (
        df
        .groupBy("Country")
        .agg(F.mean("Qty").alias("avg"))
        .filter(F.col("Country") == "Belgium")
        .show()
    )
    
    # output
    +-------+----+
    |Country| avg|
    +-------+----+
    |Belgium|43.0|
    +-------+----+
    

    【讨论】:

      猜你喜欢
      • 2017-06-14
      • 2023-01-18
      • 2021-04-09
      • 2015-08-17
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      相关资源
      最近更新 更多