gpt4 book ai didi

python - 如何选择具有最大值的行的所有列

转载 作者:行者123 更新时间:2023-12-04 15:54:54 25 4
gpt4 key购买 nike

我需要通过对“ID”进行分组来从数据框中选择所有列。但是当我这样做时,我只会得到 ID 和“值(value)”。我需要所有列

a=df.groupby(df['id']).agg({"date": "max"}
a.show()

这仅选择“id”和“date”列。还有其他栏目。如何为日期中的最大值选择所有列。

最佳答案

在 spark 中,有两种方法可以将它与之前的数据帧连接起来,如下所示:

a=df.groupby(df['id']).agg({"date": "max"}
df = df.join(
a,
on = "id",
how = "inner"
)
df.show()
或者像这样使用窗口分区:
from pyspark.sql import Window
import pyspark.sql.functions as F
window = Window.partitionBy("id")
a = df.withColumn(
"max",
(F.max(F.col("date")).over(window))
)
a.show()
我会说更喜欢第一个,因为即使加入后它的成本也更低。

关于python - 如何选择具有最大值的行的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52206946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com