【问题标题】:How to select rows with specific string patterns in pandas?如何在熊猫中选择具有特定字符串模式的行?
【发布时间】:2020-02-24 20:40:56
【问题描述】:

我知道我们可以使用str.contains 方法来选择部分字符串。

我的专栏是这样的,

col1
V2648   
V9174.
V9071
V0021;+
V7615***
()()
random
words

我想选择所有包含V+ 4 digits number 模式的行。所以我们需要对这些字符串应用多个条件。

我的输出会是这样的,

col1
V2648   
V9174.
V9071
V0021;+
V7615***

【问题讨论】:

  • 你熟悉正则表达式吗?
  • @Derek_6424246 哦,是的,我忘了。

标签: python string pandas numpy dataframe


【解决方案1】:

你可以这样做:

mask = df.col1.str.startswith('V') & df.col1.str.contains('\d+')
print(df[mask])

输出

       col1
0     V2648
1    V9174.
2     V9071
3   V0021;+
4  V7615***

掩码df.col1.str.startswith('V') 检查以'V' 开头的所有内容,df.col1.str.contains('\d+') 检查所有具有4 数字的内容。如果您想完全匹配 V 后跟 4 位数字,请使用:

mask = df.col1.str.contains('^V\d+')

【讨论】:

  • 嗨@JiayuZhang 很高兴我能帮上忙,如果我没记错的话,那将匹配 5 位数字。
【解决方案2】:

str.match

df[df.col1.str.match('[V](\d{4})')]
Out[135]: 
       col1
0     V2648
1    V9174.
2     V9071
3   V0021;+
4  V7615***

【讨论】:

    猜你喜欢
    • 2019-07-26
    • 1970-01-01
    • 2018-03-13
    • 2015-03-29
    • 2018-08-10
    • 2018-12-09
    • 2022-11-23
    • 2021-07-03
    • 2017-09-24
    相关资源
    最近更新 更多