【问题标题】:Is there a way in pandas to filter rows in a column that are contained in a string熊猫中有没有办法过滤字符串中包含的列中的行
【发布时间】:2018-08-30 20:03:36
【问题描述】:

有一种方法可以检查列中的字符串是否包含另一个字符串:

df["column"].str.contains("mystring")

但我正在寻找相反的情况,将列字符串包含在另一个字符串中,而不执行应用函数,我猜这比矢量化 .contains 慢:

df["column"].apply(lambda x: x in "mystring", axis=1)

更新数据:

mystring = "abc"
df = pd.DataFrame({"A": ["ab", "az"]})
df
    A
0   ab
1   az

我只想显示“ab”,因为它包含在 mystring 中。

【问题讨论】:

标签: python string pandas dataframe


【解决方案1】:

只有一个选项(jpp 有) - 使用列表理解进行迭代:

df[[r in mystring for r in df.A]]

    A
0  ab

或者,

pd.DataFrame([r for r in df.A if r in mystring], columns=['A'])

    A
0  ab

【讨论】:

    【解决方案2】:
    pd.Series([i in mystring for i in df.A]) 
    

    输出:

    0     True
    1    False
    dtype: bool
    

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 2020-11-29
      • 2019-03-04
      • 1970-01-01
      • 2020-10-10
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      相关资源
      最近更新 更多