Fra*_*Boi 8 mean python-3.x pyspark
我想计算每列的平均值而不指定所有列名称。
例如,不要这样做:
res = df.select([mean('col1'), mean('col2')])
Run Code Online (Sandbox Code Playgroud)
我想做一些相当于:
res = df.select([mean('*')])
Run Code Online (Sandbox Code Playgroud)
那可能吗?
类似的解决方案,但可能更容易阅读:
results= df.agg(*(avg(c).alias(c) for c in df.columns))
Run Code Online (Sandbox Code Playgroud)
要轻松检索信息,请使用:
results.first().asDict()
Run Code Online (Sandbox Code Playgroud)
当你用它来填充 NaN 时会很方便,例如:
df.na.fill(results.first().asDict())
Run Code Online (Sandbox Code Playgroud)
没有晋升,只是来自我这边的感激之情:我在 Layla AI 的精彩 pyspark 课程中学到了这个很酷的技巧(Pyspark 数据科学家必备知识)
你可以这样做
res = df.select(*[f.mean(c).alias(c) for c in df.columns])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13583 次 |
最近记录: |