Python 如何创建宏以循环遍历Dataframe中的所有列?

Python 如何创建宏以循环遍历Dataframe中的所有列?,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我在分析一个数据集,里面有来自足球运动员的信息。我有足球运动员的名字,他的俱乐部和所有技能。我想从一家俱乐部得到所有球员的平均值,并检查哪家俱乐部的技术更好。例如,哪个俱乐部有速度更快的球员,最高的球员,等等 以下是我的数据: import pandas as pd df = pd.DataFrame( { "Club": ["Palmeiras", "SPFC", "Corinthians", "Palmeiras", "SPFC"], "Player

我在分析一个数据集,里面有来自足球运动员的信息。我有足球运动员的名字,他的俱乐部和所有技能。我想从一家俱乐部得到所有球员的平均值,并检查哪家俱乐部的技术更好。例如,哪个俱乐部有速度更快的球员,最高的球员,等等

以下是我的数据:

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
函数结合起来


我也发现了这个例子,但它对我不起作用。

您想要组合
groupby().mean()
来获得俱乐部的所有平均统计数据,以及
idxmax()
来识别具有最大平均数的俱乐部:

df.groupby('Club').mean().idxmax()
输出:

Balance       Corinthians
Speed           Palmeiras
Aggression    Corinthians
dtype: object

我认为@Quang Hoang已经解决了您的问题,但如果您想在单个数据帧中获取所有内容,可以执行以下操作

means = df.groupby('Club').mean().max()
best = df.groupby('Club').mean().idxmax()
res = pd.DataFrame([means, best], index=['Mean', 'Team']).T

In [1]: print(res)
Out[1]: 
            Mean    Team
Balance     90      Corinthians
Speed       89      Palmeiras
Aggression  80      Corinthians

问题是,我将不得不编写所有变量,这是一个大数据集。我举的例子很小,但目的是复制一个更大的。。。