2016-08-30 110 views

回答

3

您可以使用locisin和最后fillna

df.loc[df.Col2.isin(['Z','X']), 'Col3'] = 'J' 
df.loc[df.Col2 == 'Y', 'Col3'] = 'K' 
df['Col3'] = df.Col3.fillna(df.Col1) 
print (df) 
    Col1 Col2 Col3 
1 A Z J 
2 B Z J 
3 B X J 
4 C Y K 
5 C W C 
+0

如果我或另一种答案是有帮助的,不要忘了[接受] (http://meta.stackexchange.com/a/5235/295067)。谢谢。 – jezrael

0

试试这个使用np.where:outcome = np.where(condition, true, false)

df["Col3"] = np.where(df['Col2'].isin(['Z','X']), "J", np.where(df['Col2'].isin(['Y']), 'K', df['Col1'])) 

    Col1 Col2 Col3 
1 A Z J 
2 B Z J 
3 B X J 
4 C Y K 
5 C W C