我有一些俱乐部和他们的国籍的数据框。就像这个:
我创建了一个函数,用于根据国籍创建一个新列。我测试过,如果我想找到相等的值,它工作得很好。但是,我需要搜索包含某个字符的字符串。例如:如果字符串包含“Br”,则我要创建一个新列,该列将接收某个值。如果包含另一个字符串,则它将接收另一个值
到目前为止,我已经做到了这一点(它工作得很好,但我需要一个类似于“contains”的东西):
# Function
def label_race (row):
if row['Nationality'] == 'Brazil':
return 'Brasil'
else:
return 'NA'
df.apply (lambda row: label_race(row), axis=1)
我想这样做:
# Function
def label_race (row):
if row['Nationality'] contains'Br':
return 'Brasil'
if row['Nationality'] contains'Brl':
return 'Brasil2'
else:
return 'NA'
df.apply (lambda row: label_race(row), axis=1)
我发现了一些技巧,但大多数都使用is.find()或df[].str.contains之类的方法。我不能适应我想要的
IIUC,你可以用
str.extract
和dot
:输出:
如果您想创建一个具有二进制值的新列(如果条件满足,那么a或者B),您可以这样做
否则,如果您想创建一个列并在同一列中使用多个规则,您可以这样做
相关问题 更多 >
编程相关推荐