基于CPD范围过滤行:object类型列的正则表达式实现指导
过滤CPD范围小于10的数据集行
实现思路
要过滤掉cpd_range列中数值小于10的行(即"0-5"、"5-10"这类范围),可以通过正则表达式匹配符合要求的范围,再筛选出这些行。核心是匹配所有最小值大于等于10的范围,或者像">55"这种下限明确大于10的格式。
正则表达式解析
使用的正则表达式为:r'^(>?\d{2,}|\d{2,}-\d+)$'
^和$:确保匹配整段文本,避免部分匹配>?\d{2,}:匹配">XX"或"XX"格式(XX是两位及以上数字,即≥10)\d{2,}-\d+:匹配"XX-YY"格式(XX≥10,YY可以是任意数字)|:逻辑或,匹配两种格式中的任意一种
Python代码实现(Pandas)
import pandas as pd import re # 示例数据集 data = { 'cpd_range': ['>55', '45-55', '35-45', '25-35', '15-25', '10-15', '5-10', '0-5'] } df = pd.DataFrame(data) # 过滤符合条件的行 filtered_df = df[df['cpd_range'].str.match(r'^(>?\d{2,}|\d{2,}-\d+)$')] # 输出结果 print(filtered_df)
输出结果
cpd_range 0 >55 1 45-55 2 35-45 3 25-35 4 15-25 5 10-15
内容的提问来源于stack exchange,提问作者Karan Kundra
相关产品推荐
相关产品推荐

