for i in test.construction:
if i.find("Wood"):
test["Category"]="tree"
print (test[["construction", "Category"]])
输出: 建筑类别
Masonry tree
Masonry tree
Wood tree
Wood tree
我使用的是find而不是'==',因为它可能在Construction列中包含多个单词/字符串。 它每次都给“树”。 当建筑=“砌体”
时,我想要Category =“Mason”感谢您的帮助!!
答案 0 :(得分:0)
如果需要tree
并且条件失败mason
,则numpy.where
创建条件似乎需要contains
:
test['Category'] = np.where(test['construction'].str.contains('Wood'), 'tree', 'mason')
print (test)
construction Category
0 Masonry mason
1 Masonry mason
2 Wood tree
3 Wood tree
或者,如果可能有很多条件,请使用自定义函数with in for test substrings:
def f(x):
if 'Wood' in x:
return 'tree'
elif 'Masonry' in x:
return 'mason'
else:
return x
test['Category'] = test['construction'].apply(f)