Python(2.7)考虑多字段的简单IF-THEN逻辑

2024-06-16 09:40:06 发布

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

试图用Python的Excel在5秒钟内完成一些我可以完成的事情,我发现自己非常沮丧

我有这样的数据:

        HomeTeam AwayTeam  HomeScore  AwayScore  TotalScore
0        OAK      LAC         26         24          50
1        CHI      DET         20         13          33
2        CIN      BAL         13         49          62
3        CLE      BUF         19         16          35
4         NO      ATL          9         26          35

我想在数据框中创建一个名为“WINNER”的新列。如果HomeScore>;AwayScore,我希望新的列冠军等于主队价值,否则,等于AwayTeam价值。例如,第0行的WINNER should=OAK,第1行的CHI

这是我迄今为止所尝试的,但这并没有给我上面所需要的结果

我知道这很简单!请帮忙

#new df
df1 = df[['HomeTeam','AwayTeam','HomeScore','AwayScore','TotalScore']]

df1['winner'] = lambda x : df['HomeTeam'] if (df['HomeScore'] > df['AwayScore']) else df['AwayTeam']

print(df1.head())

Tags: 数据dfexceldf1价值chioakwinner
2条回答

假设使用numpy是一个选项,您可以执行df['winner'] = np.where(df['HomeScore'] > df['AwayScore'], df['HomeTeam'], df['AwayScore'])

你很接近。试试这个:

df['winner'] = df.apply(lambda x :  \
                    x['HomeTeam'] if (x['HomeScore'] > x['AwayScore']) \
                                  else x['AwayTeam'], axis=1)

相关问题 更多 >