返回列中包含子字符串的行的列

时间:2019-07-17 15:52:00

标签: python-3.x pandas

我有n个列(分别命名为col'n')和'name'列的df,我想找到带有col'n'且在'searchkey'数组中没有关键字的任何行。

似乎列表理解不能应用于df列名称列表。

df[[c for c in df.columns if c[3:] = 'Col'].str.isin(searchkey))

此外,我尝试使用apply函数,但仍然遇到问题。

df = pd.DataFrame({'name':['AA','BB','CC','DD','EE','FF'],
                   'col1':['mn','mxn','ca','sd','xa','ac'], 
                   'col2':['m','naa','x','ddn','q','y'],
                   'col3':['mn','mddn','csfd','sad','xxa','aad'], 
                   ... ... 
                   'coln':['sfn','mxc','cxa','sxxd','xada','axxc'],                    
})

searchkey = ['xx', 'aa', 'dd']

def func(x):
    return [x.columns] in searchkey  ## Error

df.apply(func, axis=1)

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

尝试一下

df = df[df.isin(search_key).any(1)]