Python 熊猫-如果条件为lambda
这项工作:Python 熊猫-如果条件为lambda,python,pandas,lambda,Python,Pandas,Lambda,这项工作: C = df_temp['For Team'].map( lambda x: df_teams.loc[df_teams['CommentName']==x,'TeamColor'].item()) 但是我想在另一个列表“y”中添加一个条件,例如: y = ['salah', 'zico', 'pele'] 我试过: lambda x: df_teams.loc[df_teams['CommentName']==x if x in y,'TeamColor
C = df_temp['For Team'].map(
lambda x: df_teams.loc[df_teams['CommentName']==x,'TeamColor'].item())
但是我想在另一个列表“y”中添加一个条件,例如:
y = ['salah', 'zico', 'pele']
我试过:
lambda x: df_teams.loc[df_teams['CommentName']==x if x in y,'TeamColor'].item())
但这会产生无效的语法
我该怎么做?这应该可以:
C = df_temp['For Team'].map(lambda x: df_teams.loc[df_teams['CommentName']==x and x in y,'TeamColor'].item())
您需要使用“and”来连接这两个条件,而不是添加if语句。让我们试试
isin
df_teams.loc[df_teams['CommentName'].isin(y),'TeamColor'].item()
始终可以先创建命名函数,然后将其应用于lambda
y=[“沙拉”、“齐科”、“贝利”]
def get_团队颜色(x,y):
如果x在y中:
返回df_teams.loc[df_teams[“CommentName”]==x,“TeamColor”].item()
C=df_temp[“为团队”].map(λx:get_teamcolor(x,y))