【问题标题】:Select columns based on a filter of a value of the columns in pandas [duplicate]根据熊猫中列的值的过滤器选择列[重复]
【发布时间】:2018-11-21 20:04:34
【问题描述】:

有没有一种简单的方法可以从数据框中选择列,它们的值包含某个单词(不仅是这个特定的单词,甚至行值中还有一些额外的单词或数字)?

我尝试了一个查询,但它在列名中搜索了我不想要的未知词。

df.filter(like='Unknown')

然后我尝试了一种不同的方法,获取包含该单词的所有行,创建一个数据框,然后从中获取列名,但还是没有用。

value_list = ['Unknown']
df_unknown = df[df.str.contains(value_list)]

我也尝试了以下查询

df_uknown = df[df.isin(value_list)]

但它带回了带有 Nulls 或所有行的 Unknown 值的整个数据框,具体取决于它们是否将此单词作为值。

我不确定下一步该做什么。答案可能很简单,但我无法理解

谢谢

【问题讨论】:

  • 你能添加一些数据样本吗?
  • 请添加您所做的一些代码。还有数据框。

标签: python pandas


【解决方案1】:

我认为需要为正则表达式 OR 创建所有由| 连接的单词的最终模式并比较一些列:

value_list = ['Unknown']
pat = '|'.join(r"\b{}\b".format(x) for x in value_list)

df_unknown = df[df['col'].str.contains(pat)]

【讨论】:

  • @Yakym Pirozhenko - 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 2021-12-30
  • 2016-08-31
  • 2020-02-19
  • 1970-01-01
  • 2016-07-24
相关资源
最近更新 更多