我在分析一组足球运动员的数据。我有足球运动员的名字,他的俱乐部和所有的技术。我想从一个俱乐部得到所有球员的平均值,并检查哪个俱乐部的技术更好。例如,哪个俱乐部有速度更快的球员,最高的球员,等等
我的数据是这样的:
import pandas as pd
df = pd.DataFrame(
{
"Club": ["Palmeiras", "SPFC", "Corinthians", "Palmeiras", "SPFC"],
"Player": ["FFFFF", "EEEE", "DDDD", "CCCC", "BBBB"],
"Balance": [70, 80, 90, 50, 60],
"Speed": [90, 89, 70, 88, 80],
"Aggression": [70, 74, 80, 85, 66],
}
)
在这个例子中,我得到了平均速度最高的球杆:
print("Club with highest speed: " + df.groupby("Club")["Speed"].mean().reset_index().sort_values("Speed", ascending=False).iloc[0, 0])
我想把同样的东西印在所有技能上,速度最高的球杆,平衡力最高的球杆等等。我想我可以使用一些类似于我以前用df.iterrows()
做的东西,但是,我很难将它与groupby
函数结合起来。你知道吗
我也发现了这个例子How to loop over grouped Pandas dataframe?,但它对我不起作用。你知道吗
我认为@Quang Hoang已经解决了你的问题,但是如果你想把所有的东西都放到一个数据帧中,你可以做如下的事情。你知道吗
您需要使用
groupby().mean()
的组合来获得俱乐部的所有平均数据,并idxmax()
来标识具有最大平均值的俱乐部:输出:
相关问题 更多 >
编程相关推荐