Python 设置变量列的平均值/平均值

Python 设置变量列的平均值/平均值,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我有一个数据框,我想得到一列的平均值。如果我得到这样的结果: avg_NoPItems = df.groupBy().mean('NoPItems').collect() 后来我不能用它与任何值进行比较,因为我得到了一个数据帧对象。那么,我怎样才能得到作为数字而不是数据帧的平均值呢 PD:我试过这个,但不起作用: avg_NoPItems = df.groupBy().mean('NoPItems').collect()[0] mean('NoPItems').collect()将返回行对象

我有一个数据框,我想得到一列的平均值。如果我得到这样的结果:

avg_NoPItems = df.groupBy().mean('NoPItems').collect()
后来我不能用它与任何值进行比较,因为我得到了一个数据帧对象。那么,我怎样才能得到作为数字而不是数据帧的平均值呢

PD:我试过这个,但不起作用:

avg_NoPItems = df.groupBy().mean('NoPItems').collect()[0]
  • mean('NoPItems').collect()将返回行对象的列表

  • df.groupBy().mean('NoPItems').collect()[0]将返回第一行对象

  • df.groupBy().mean('NoPItems').collect()[0][0]将返回第一行中的第一个值。更改索引以获取所需的值

  • 希望这有帮助

    问候,


    Neeraj

    为什么要使用group by,我想你可以简单地选择(mean(“NoPItems”):df.select(mean(“NoPItems”).as(“mean”)。首先。getAs[Double](“mean”)我不能用那个,pyspark说,
    …as(“mean”)…
    对不起,我正在使用scala,对于python,我认为是(但不确定):
    df.select(mean(“NoPItems”)。别名(“平均值”)。首先‌​mean“]
    两者都不起作用
    TypeError:'method'对象不可下标
    我找到了一个临时解决方案:
    df.groupBy().mean('NoPItems').collect()[0][0]
    这就是解决方案。谢谢