需要根据PYTHIN中的特定条件创建新变量:

2024-05-26 11:54:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用下面的代码

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而不是'==',因为它可能在构造列中包含多个单词/字符串。 每次都是“树”。 我想要Category=“Mason”当construction=“Masonry”

谢谢你的帮助


Tags: 代码intesttreeforiffind类别
1条回答
网友
1楼 · 发布于 2024-05-26 11:54:52

似乎您需要^{},条件由^{}创建,如果需要tree,如果条件失败mason

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

或者,如果有许多条件,请使用带有in的自定义函数作为测试子字符串:

def f(x):
    if 'Wood' in x:
        return 'tree'
    elif 'Masonry' in x:
        return 'mason'
    else:
        return x

test['Category'] = test['construction'].apply(f)

相关问题 更多 >