如何在熊猫中选择具有特定字符串模式的行?
Posted
技术标签:
【中文标题】如何在熊猫中选择具有特定字符串模式的行?【英文标题】: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 哦,是的,我忘了。 【参考方案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](\d4)')]
Out[135]:
col1
0 V2648
1 V9174.
2 V9071
3 V0021;+
4 V7615***
【讨论】:
以上是关于如何在熊猫中选择具有特定字符串模式的行?的主要内容,如果未能解决你的问题,请参考以下文章