在数据帧中查找行的最大值并返回其列名

2024-09-28 05:18:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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',这个数据类型不允许 我该怎么办呢


Tags: 数据代码importnumpypandasdfdataas
1条回答
网友
1楼 · 发布于 2024-09-28 05:18:46

这里不需要迭代行。相反,可以使用^{}^{}执行矢量化计算:

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

相关问题 更多 >

    热门问题