是否有一种简单的方法可以从数据框中选择列,它们的值包含某个单词(不仅是这个特定的单词,还有行值中的一些额外的单词或数字)?
我尝试了一个查询,但它在列名中搜索了未知单词,这是我不想要的。
df.filter(like='Unknown')
然后我尝试了一种不同的方法,获取包含该单词的所有行,创建一个数据帧,然后从中获取列名但是再次无效。
value_list = ['Unknown']
df_unknown = df[df.str.contains(value_list)]
我也尝试了以下查询
df_uknown = df[df.isin(value_list)]
但它带回所有行的Null或未知值的整个数据帧,具体取决于他们是否将此单词作为值。
我不确定下一步该做什么。答案可能很简单,但我不知道
由于
答案 0 :(得分:0)
我认为需要使用|
为正则表达式OR
创建的所有单词创建最终模式并比较某些列:
value_list = ['Unknown']
pat = '|'.join(r"\b{}\b".format(x) for x in value_list)
df_unknown = df[df['col'].str.contains(pat)]