使用numpy进行包含和完全匹配条件

时间:2019-03-22 12:34:29

标签: python pandas numpy

尝试使用以下条件创建新的数据框: 如果column1!=“ uuu”并且column2包含“ yes”,则新列将获得值“ yes”。 如果以上都不匹配,则获取值“ no_match”

示例:

enter image description here

到目前为止,我的代码:

df['new_column'] = pd.np.where(df.column2.str.contains('yes') & np.where(df['column1']) != 'uuu', 'yes', 'no')

我在这里做什么错了?

2 个答案:

答案 0 :(得分:2)

仅使用一个np.where链接条件为&的{​​{1}}:

m1 = df.column2.str.contains('yes')
m2  = (df['column1'] != 'uuu')
df['new_column'] = pd.np.where(m1 & m2, 'yes', 'no match')

答案 1 :(得分:0)

类似的东西:

def myFunc(row):
   if row['column1'] != 'uuu' and row['column2'] == 'yes':
       return 'yes'
   else:
       return 'no_match'

df['new_column'] = df.apply(myFunc, axis=1)