使用Pandas返回每列的最大值的名称

ia2d9nvy  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(125)

我是一个使用Python的新手,我正在尝试使用panda来返回name列的值,该name列具有每个数字列的最大平均分组值。
以Pokemon数据集为例,下面的代码加载数据。

import pandas as pd
url = "https://raw.githubusercontent.com/UofGAnalyticsData/DPIP/main/assesment_datasets/assessment3/Pokemon.csv"
df4 = pd.read_csv(url)

然后,接下来的代码行按类型1分组,并返回分组后每个数值属性的平均输出。

df4.groupby("Type 1")[["Total", "HP", "Attack", "Defense", "Sp. Atk", "Sp. Def", "Speed"]].agg("mean")

我想修改这段代码,以便从结果表中,它概述了“类型1”的名称,它具有最高的平均总数,HP,攻击等...
下面的代码给出了数字最大值,但我还想返回每个最大值所属的类型1的名称。

df4.groupby("Type 1")[["Total", "HP", "Attack", "Defense", "Sp. Atk", "Sp. Def", "Speed"]].agg("mean").agg("max")

我该怎么用Pandas来简洁地表达呢?谢谢。

2g32fytz

2g32fytz1#

您可以只在agg()方法中加入idxmax

df4.groupby("Type 1")[["Total", "HP", "Attack", "Defense", "Sp. Atk", "Sp. Def", "Speed"]].agg("mean").agg(["max", "idxmax"])

相关问题