python - pyspark如何根据另一列的值返回一列的平均值?
问题描述
我不认为这很困难,但我无法理解如何在我的 spark 数据框中取列的平均值。
数据框如下所示:
+-------+------------+--------+------------------+
|Private|Applications|Accepted| Rate|
+-------+------------+--------+------------------+
| Yes| 417| 349|0.8369304556354916|
| Yes| 1899| 1720|0.9057398630858347|
| Yes| 1732| 1425|0.8227482678983834|
| Yes| 494| 313|0.6336032388663968|
| No| 3540| 2001|0.5652542372881356|
| No| 7313| 4664|0.6377683577191303|
| Yes| 619| 516|0.8336025848142165|
| Yes| 662| 513|0.7749244712990937|
| Yes| 761| 725|0.9526938239159002|
| Yes| 1690| 1366| 0.808284023668639|
| Yes| 6075| 5349|0.8804938271604938|
| Yes| 632| 494|0.7816455696202531|
| No| 1208| 877|0.7259933774834437|
| Yes| 20192| 13007|0.6441660063391442|
| Yes| 1436| 1228|0.8551532033426184|
| Yes| 392| 351|0.8954081632653061|
| Yes| 12586| 3239|0.2573494358811378|
| Yes| 1011| 604|0.5974282888229476|
| Yes| 848| 587|0.6922169811320755|
| Yes| 8728| 5201|0.5958982584784601|
+-------+------------+--------+------------------+
我想在等于“是”Rate
时返回列的平均值。Private
我怎样才能做到这一点?
解决方案
尝试
df.filter(df['Private'] == 'Yes').agg({'Rate': 'avg'}).collect()[0]
推荐阅读
- rust - How to write a delete function for a binary tree in Rust?
- vb.net - 在 vb.net 中使用 Linq to sql 查找日期时间范围内的差距
- python - 如果 celery worker 在 Windows 上关闭,则重新启动 celery
- pandas - DataFrame Column 分成多列
- c# - 在未登录 AzureActiveDirectory 的情况下使用 microsoft graph api c# 创建在线会议时出现 404 错误
- asp.net-core - 如何在 SwaggerUI 中反映使用查询字符串参数的 dotnet Web api 端点?
- python - 检测两条曲线交点的上游和下游点
- asp.net-core - Azure SignalR Serverless OnConnected-trigger with Azure-functions(传统模型)
- ruby-on-rails - 允许使用 RAILS 4 在同一台机器上使用不同 ID 登录并设计
- android - 如何在 Jetpack Compose 中实现这种布局