仅当col1包含值'12'时,我才希望对每行应用一个函数。对于没有12的行,在col3上返回0
我只想将以下内容应用于col1 = 12的行。
df ['col3'] = df ['col2']。str.lower()。str.contains('apple',na = 0)
d1
col1 col2
12 apple
13 apple
12 grape
预期结果。
df1
col1 col2 col3
12 apple True
13 apple False
12 grape False
谢谢
答案 0 :(得分:2)
您可以尝试:
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
答案 1 :(得分:2)
可以简单地做
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)