所以如果 col2 = a 或 b col3 被分配“是”,否则如果 col 2 是 c col3 被分配“否”
有以下输出:
我试过使用 lambda 但它只适用于第一个条件
尝试使用pd.Series.map:
df['Col3'] = df['Col2'].map({'a': 'yes', 'b': 'yes', 'c': 'no'})
print(df)
输出:
Col1 Col2 Col3
0 1 a yes
1 2 b yes
2 3 c no
使用,isin然后map:
l = ['a','b']
df['Col3'] = df['Col2'].isin(l).map({True:'yes', False:'no'})
print(df)
输出:
Col1 Col2 Col3
0 1 a yes
1 2 b yes
2 3 c no
不建议对此问题进行更新,但这是我认为您正在寻找的语法:
df = pd.DataFrame({'Col1':[1,2,3], 'Col2':[*'abc'], 'Col3':[np.nan]*3})
df['Col3'] = df['Col2'].apply(lambda x: 'yes' if (x == 'a') | (x == 'b') else 'no')
df
输出:
Col1 Col2 Col3
0 1 a yes
1 2 b yes
2 3 c no