【问题标题】:Python: Pandas Dataframe Using Wildcard to Find String in Column and Keep RowPython:Pandas Dataframe 使用通配符在列中查找字符串并保留行
【发布时间】:2018-03-12 16:16:49
【问题描述】:

我有一个熊猫数据框。下面是一个示例表。

Event   Text
A       something/AWAIT hello          
B       la de la
C       AWAITING SHIP
D       yes NO AWAIT 

我只想在 Text 列中保留包含某种形式的单词 AWAIT 的行。下面是我想要的表格:

Event   Text
A       something/AWAIT hello          
C       AWAITING SHIP
D       yes NO AWAIT 

下面是我尝试在所有可能的情况下捕获包含 AWAIT 的字符串的代码。

df_STH001_2 = df_STH001[df_STH001['Text'].str.contains("?AWAIT?") == True]

我得到的错误如下:

error: nothing to repeat at position 0

【问题讨论】:

  • 去掉问号...
  • 当它说什么/AWAIT 时会捕捉到它吗?
  • 试一试比写评论快;-)
  • 啊,你是对的!成功了,谢谢

标签: python string dataframe find wildcard


【解决方案1】:

Series.str.contains(pat, case=True, flags=0, na=nan, regex=True) 默认将pat 视为正则表达式。

问号 (?) 使正则表达式中的 preceding 标记是可选的,因此出现错误消息。

In [178]: d[d['Text'].str.contains('AWAIT')]
Out[178]:
  Event                   Text
0     A  something/AWAIT hello
2     C          AWAITING SHIP
3     D           yes NO AWAIT

【讨论】:

    【解决方案2】:

    你也可以试试match方法:

    df[df.column.str.match('some_string')]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-10
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 2023-02-02
      相关资源
      最近更新 更多