我想计算每列的平均值而不指定所有列名称。
例如,不要这样做:
res = df.select([mean('col1'), mean('col2')])
Run Code Online (Sandbox Code Playgroud)
我想做一些相当于:
res = df.select([mean('*')])
Run Code Online (Sandbox Code Playgroud)
那可能吗?
我需要找到 pyspark 数据框中所有列的零百分比。如何查找数据框中每列的零计数?
PS:我尝试将数据帧转换为 pandas 数据帧并使用 value_counts。但对于大型数据集来说,推断其观察结果是不可能的。
我在内存中加载了一个Spark DataFrame,我想对列进行均值(或任何聚合操作).我该怎么办?(在numpy,这被称为进行操作axis=1).
如果有人在行(axis=0)中计算DataFrame的平均值,那么这已经内置:
from pyspark.sql import functions as F
F.mean(...)
Run Code Online (Sandbox Code Playgroud)
但有没有办法以编程方式对列中的条目执行此操作?例如,从下面的DataFrame中
+--+--+---+---+
|id|US| UK|Can|
+--+--+---+---+
| 1|50| 0| 0|
| 1| 0|100| 0|
| 1| 0| 0|125|
| 2|75| 0| 0|
+--+--+---+---+
Run Code Online (Sandbox Code Playgroud)
省略id,手段将是
+------+
| mean|
+------+
| 16.66|
| 33.33|
| 41.67|
| 25.00|
+------+
Run Code Online (Sandbox Code Playgroud)