Здесь вам не нужны if-else
операторы, вы можете сделать это чисто в одну строку, используя np.where
:
df['D'] = np.where(
df['C'].str.startswith('description:'), 'fuzzy', 'buzzy')
Вы можете сделать это с помощью одного loc
вызова, так какВы назначаете только два значения.
df['D'] = 'buzzy'
df.loc[df['C'].str.startswith('description:'), 'D'] = 'fuzzy'
Или используйте df.mask
/ df.where
, как @jpp, предложенный в комментариях:
df['D'] = 'buzzy'
df['D'] = df['D'].mask(df['C'].str.startswith('description:'), 'fuzzy')
И, наконец, используя map
:
m = {True: 'fuzzy', False: 'buzzy'}
df['D'] = df['C'].str.startswith('description:').map(m)
print(df)
A B C D
0 F House Are you at home? buzzy
1 E House description: to deliver tomorrow fuzzy
2 F Apt Here is some exemples buzzy
3 F House description: a brown table fuzzy
4 E Apt description: in the bus fuzzy
5 F House Hello, how are you? buzzy
6 E Apt description: keys fuzzy