尝试比较行值,并在具有最高值的行的新列中打印消息



https://i.stack.imgur.com/mPXq8.jpg

如果你从最右边看,我可以做我想做的事情,但这只是将欧洲的销售额与北美的销售额进行比较。

然而,我也想将欧洲的销售额与其他专栏的销售额进行比较(将其与多个专栏进行比较)。我该怎么做?不仅仅是与NA_Sales 进行比较

从本质上讲,我想把一个栏目的销售额与所有栏目的销售额进行比较,哪个栏目的销售额越高,我想说X游戏在X大陆的销售额更高。感谢

这是用于欧盟销售与Na销售的代码

def desc(row):
if row['EU_Sales'] > row['NA_Sales']:
return '{} sold more in europe'.format(row['Name'])
else:
return 'nothing'
df1['status'] = df1.apply(desc, axis = 1)
Thanks

还有,有没有更好的方法来表达这个问题?谢谢

IIUC,您可以尝试np.where

import numpy as np
df1['status'] = np.where(df1['EU_Sales'] > df1['NA_Sales'], df1['Name']+' sold more in europe', 'nothing')

可以使用max(axis=1).idxmax()获取最大值对应的列名

df1['status'] = df1['Name'] + ' sold more in ' + df1[['EU_Sales', 'NA_Sales', 'JP_Sales']].idxmax(axis=1).str.split('_').str[0]

最新更新