Python 3.x IF语句应用不同的公式
我希望创建一个字段,告诉我一个球员在FPL中得分或助攻得分能获得多少分。由于每个进球有不同的分数取决于位置(GK、后卫、中场、前锋),但助攻获得相同数量的分数(3),我需要代码来识别球员的位置,并根据每个位置得到的分数将其相乘 代码如下: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'
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的语法不正确。