У меня есть фрейм данных с несколькими столбцами вещества, например:
import random
values = ['oil', 'gas', 'water']
modifier = ['dirty', 'crude', 'fuel']
wordzip = [modifier, values]
data = [[wordzip[0][random.randint(0,2)] + ' ' + wordzip[1][random.randint(0,2)] for c in wordzip[0]] for i in range(7)]
pd.DataFrame(data = data, columns = ['A', 'B', 'C'])
A B C
0 dirty gas crude oil dirty water
1 dirty water fuel gas dirty gas
2 dirty water fuel gas dirty oil
3 fuel oil crude water crude gas
4 dirty water fuel oil dirty water
5 crude oil fuel water dirty oil
6 fuel water crude gas crude water
Я хочу создать новый столбец со значениями в этих столбцах, который содержит слово «нефть».Таким образом, конечный df должен выглядеть следующим образом:
A B C D
0 dirty gas crude oil dirty water crude oil
1 dirty water fuel gas dirty gas NaN
2 dirty water fuel gas dirty oil dirty oil
3 fuel oil crude water crude gas fuel oil
4 dirty water fuel oil dirty water fuel oil
5 crude oil fuel water dirty oil crude oil
6 fuel water crude gas crude water NaN
Я пробовал df[['A', 'B', 'C']].apply(lambda x: x.str.contains('oil'))
, но это возвращает логический фрейм данных, а не сами значения.