как применить функцию к строке, если значение столбца имеет значение в pandas - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу применить функцию к каждой строке, только если столбец col1 содержит значение «12».для строк, у которых нет 12, верните 0 в столбце col3

. Я только хочу применить следующее к строкам, имеющим столбец col1 = 12.

df ['col3'] = df ['col2 ']. str.lower (). str.contains (' яблоко ', na = 0)

d1
col1    col2
12      apple
13      apple
12      grape

Ожидаемые результаты ..

df1
col1    col2    col3
12      apple   True
13      apple   False
12      grape   False

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Можно сделать просто

df['col3'] = df['col1'].eq(12) & df['col2'].str.contains('apple')

Или в два этапа отдельно

s = df.loc[df.col1.eq(12), 'col2'].str.lower().str.contains('apple',na=0)
df.loc[:, 'col32'] = s
df = df.fillna(False)
0 голосов
/ 25 сентября 2018

Вы можете попробовать:

df['col3'] = (df['col1'] == 12) & (df['col2'].str.contains('apple'))

Вывод:

  col1   col2   col3
0   12  apple   True
1   13  apple  False
2   12  grape  False
...