这有效:
C = df_temp['For Team'].map(
lambda x: df_teams.loc[df_teams['CommentName']==x,'TeamColor'].item())
但是我想为lambda
中x在另一个列表“ y”中添加一个条件,就像这样:
y = ['salah', 'zico', 'pele']
我尝试过:
lambda x: df_teams.loc[df_teams['CommentName']==x if x in y,'TeamColor'].item())
但这会引发无效的语法。
我该怎么做?
答案 0 :(得分:1)
让我们尝试isin
df_teams.loc[df_teams['CommentName'].isin(y),'TeamColor'].item()
答案 1 :(得分:0)
这应该有效:
C = df_temp['For Team'].map(lambda x: df_teams.loc[df_teams['CommentName']==x and x in y,'TeamColor'].item())
您需要使用“和”将两个条件连接起来,而不是添加if语句。
希望对您有帮助。
答案 2 :(得分:0)
您始终可以先创建一个命名函数,然后将其应用于lambda。
y = ["salah", "zico", "pele"]
def get_teamcolor(x, y):
if x in y:
return df_teams.loc[df_teams["CommentName"] == x, "TeamColor"].item()
C = df_temp["For Team"].map(lambda x: get_teamcolor(x, y))