Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pandas中选择具有特定字符串模式的行?_Python_String_Pandas_Numpy_Dataframe - Fatal编程技术网

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

Python 如何在pandas中选择具有特定字符串模式的行?,python,string,pandas,numpy,dataframe,Python,String,Pandas,Numpy,Dataframe,我知道我们可以使用str.contains方法来选择部分字符串 我的专栏是, col1 V2648 V9174. V9071 V0021;+ V7615*** ()() random words 我想选择包含V+4位数字图案的所有行。所以我们需要对这些字符串应用多个条件 我的输出将是 col1 V2648 V9174. V9071 V0021;+ V7615*** 你可以做: mask = df.col1.str.startswith('V') & df.col1.str

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

我的专栏是,

col1
V2648   
V9174.
V9071
V0021;+
V7615***
()()
random
words
我想选择包含
V+4位数字图案的所有行
。所以我们需要对这些字符串应用多个条件

我的输出将是

col1
V2648   
V9174.
V9071
V0021;+
V7615***
你可以做:

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位的内容。如果要精确匹配后跟4位数字的
V
,请使用:

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

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

你熟悉正则表达式吗?@Derek_64246;哦,是的,我忘了。嗨@JiayuZhang很高兴我能帮忙,如果我没弄错的话,那一个将匹配5位数字。