如何在 pandas 中选择具有特定字符串模式的行?

Jia*_*ang 6 python string numpy dataframe pandas

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

我的专栏是这样的

col1
V2648   
V9174.
V9071
V0021;+
V7615***
()()
random
words
Run Code Online (Sandbox Code Playgroud)

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

我的输出会是这样的,

col1
V2648   
V9174.
V9071
V0021;+
V7615***
Run Code Online (Sandbox Code Playgroud)

Dan*_*ejo 5

你可以这样做:

mask = df.col1.str.startswith('V') & df.col1.str.contains('\d+')
print(df[mask])
Run Code Online (Sandbox Code Playgroud)

输出

       col1
0     V2648
1    V9174.
2     V9071
3   V0021;+
4  V7615***
Run Code Online (Sandbox Code Playgroud)

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

mask = df.col1.str.contains('^V\d+')
Run Code Online (Sandbox Code Playgroud)