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位数字。