Python 3.x IF语句应用不同的公式

Python 3.x IF语句应用不同的公式,python-3.x,pandas,Python 3.x,Pandas,我希望创建一个字段,告诉我一个球员在FPL中得分或助攻得分能获得多少分。由于每个进球有不同的分数取决于位置(GK、后卫、中场、前锋),但助攻获得相同数量的分数(3),我需要代码来识别球员的位置,并根据每个位置得到的分数将其相乘 代码如下: multi_-goal=如果df['element_-type']=='FWD':4 elif df['element_type']='MID':5 elif df['element_type']=='DEF':6 else df['element_type'

我希望创建一个字段,告诉我一个球员在FPL中得分或助攻得分能获得多少分。由于每个进球有不同的分数取决于位置(GK、后卫、中场、前锋),但助攻获得相同数量的分数(3),我需要代码来识别球员的位置,并根据每个位置得到的分数将其相乘

代码如下:

multi_-goal=如果df['element_-type']=='FWD':4
elif df['element_type']='MID':5
elif df['element_type']=='DEF':6
else df['element_type']='GK':6
进球数=df[“进球数”]=(df[“进球数”]*多球)+(df[“助攻数”]*3)
“多目标”对象出现以下错误:

multi_goal = if df['element_type'] == 'FWD': 4
              ^
SyntaxError: invalid syntax

您可以使用更简单的Synthex,如:

if df['element_type'] == 'FWD':
    multi_goal = 4
elif df['element_type'] == 'MID':
    multi_goal = 5
...
或者可以实现一个switch语句


希望有帮助;)

IIUC,我会使用字典和
map

dmap = {'FWD': 4,
       'MID':5,
       'DEF':6,
       'GK':6}

df = pd.DataFrame({'Position':['FWD','FWD','MID','DEF','GK'],
                   'goals_scored':[1,2,1,3,0],
                   'assists':[0,3,1,1,2]})

 df['goal_part'] = df['goals_scored']*df['Position'].map(dmap) + df['assists']*3
输出:

  Position  goals_scored  assists  goal_part
0      FWD             1        0          4
1      FWD             2        3         17
2      MID             1        1          8
3      DEF             3        1         21
4       GK             0        2          6

如错误所述,python的语法不正确。