我有一个数据框,有几个实质列,如下所示:
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
我想在包含单词“oil”的列上创建一个新列,其中的值在中。所以最后的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'))
,但它返回的是布尔数据帧,而不是值本身。你知道吗
像这样:
让我们使用
stack
+extract
:与
bfill
一起使用applymap
相关问题 更多 >
编程相关推荐