我想得到total_amount列的中位数并保存起来以备将来使用,这是我的数据集:
+------------+------------+-------------+---------------+------------+
|PULocationID|DOLocationID|trip_distance|passenger_count|total_amount|
+------------+------------+-------------+---------------+------------+
| 90| 68| 0.8| 1.0| 8.8|
| 113| 90| 0.9| 1.0| 8.8|
| 88| 232| 2.8| 1.0| 13.8|
| 79| 249| 1.4| 1.0| 12.3|
| 142| 238| 2.0| 0.0| 12.3|
| 114| 90| 1.6| 1.0| 12.8|
| 90| 144| 1.8| 1.0| 13.3|
| 114| 48| 2.0| 1.0| 14.75|
| 48| 152| 5.7| 1.0| 22.3|
| 234| 148| 1.8| 1.0| 14.75|
| 79| 141| 3.5| 2.0| 17.3|
我的密码是
processed.sort(processed.total_amount.asc())
processed.show()
median = FN.expr("percentile_approx(total_amount, 0.5, 1000000)")
print(median)
然而,它给我的感觉是:
Column<'percentile_approx(total_amount, 0.5, 1000000)'>
似乎根本没有计算中位数
我也试过:
processed.agg(FN.expr("percentile_approx('total_amount', 0.5, 10000)")).show()
其中结果为空
1条答案
按热度按时间0pizxfdo1#
可以使用agg函数计算列的中位数: