【问题标题】:Pandas DF Select Column Contained By StringPandas DF 选择字符串包含的列
【发布时间】:2019-12-11 03:29:25
【问题描述】:

我目前正在尝试找出 df[df['A'].str.contains("hello")] 的倒数。如果它们在“hello”中有一个字符串,我想从“A”列返回所有行。

如果值是“A”列中的“he”、“llo”、“l”,它们将返回 true。

如果“A”列中的值为“het”、“lil”、“elp”,它们将返回 false。

有没有一种方法可以在数据框中执行此操作而无需迭代数据框中的每一行?

由于使用 ESRI ArcGIS 10.4 软件限制,目前使用 2.7。

【问题讨论】:

  • 基本上如果它包含字符串'hello'中的任何字母?
  • 更新可能有助于澄清

标签: pandas dataframe


【解决方案1】:

您可以使用 Pandas 的 apply() 来遍历 A 列的每一行,并评估它是否是 'hello' 的子字符串

def hello_check(row):
    return (row in 'hello')

df['contains_hello'] = df['A'].apply(hello_check)

【讨论】:

  • 只是return row in 'hello'?
  • @QuangHoang 更简洁了,谢谢建议!
  • 知道为什么 .isin 对字符串不起作用,因为我也在尝试。对于很多事情来说,字符串和列表本质上是一样的。只是不想使用 .apply 如果我不需要。
  • 如果你说的是panda.DataFrame的isin(),它是检查列中的每个值是否是指定值列表中的一项,这似乎不起作用这里。随时在评论pandas.pydata.org/pandas-docs/stable/reference/api/… 中分享您尝试执行的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
  • 2020-04-18
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2017-12-06
相关资源
最近更新 更多