gpt4 book ai didi

python - 查找数据框中行的最大值并在 pandas 中返回其列名称

转载 作者:行者123 更新时间:2023-12-01 09:15:48 26 4
gpt4 key购买 nike

我有一个足球运动员的数据集。我需要找到每个球员的最大罚球数或截击球数,并在打印最大值以及是否是罚球数或截击球数的列中添加一列。我尝试了以下代码:

import pandas as pd
import numpy as np
df=pd.read_excel(r'C:\Users\shrey\Desktop\FullData.xlsx')
for j,i in df.iterrows():
data=i[['Penalties','Volleys']]
i['max']=np.max(data)
i['max_attr']=i.idxmax()

但这给了我一个错误 - 此数据类型不允许减少操作“argmax”我应该如何处理它?<​​/p>

最佳答案

您不需要在此处迭代行。相反,您可以使用 pd.DataFrame.maxpd.DataFrame.idxmax执行矢量化计算:

cols = ['Penalties', 'Volleys']

df['max'] = df[cols].max(1)
df['max_attr'] = df[cols].idxmax(1)

这是一个演示:

df = pd.DataFrame([[2, 3], [5, 1]], columns=['Penalties', 'Volleys'])

cols = ['Penalties', 'Volleys']

df['max'] = df[cols].max(1)
df['max_attr'] = df[cols].idxmax(1)

print(df)

Penalties Volleys max max_attr
0 2 3 3 Volleys
1 5 1 5 Penalties

关于python - 查找数据框中行的最大值并在 pandas 中返回其列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51266961/

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