如何统计字符串中的数值数量并筛选含4个以上数字的行
筛选包含4个以上数字的行
以下是两种基于Python pandas的实现方法,可直接用于筛选目标行:
方法一:遍历字符统计数字数量
先构造示例数据,再通过apply遍历每个字符串中的字符,统计数字个数后筛选:
import pandas as pd # 构造示例数据 data = { 'row_num': [1, 2, 3, 4], 'column_1': ['fje8q934yeufoeha', '08kfdjaehewaoffe', '6fdiuewwiaei3eew', 'jfe0293ujfid22fe'] } df = pd.DataFrame(data) # 统计每行的数字个数 df['digit_count'] = df['column_1'].apply(lambda x: sum(c.isdigit() for c in x)) # 筛选数字个数大于4的行,移除临时统计列 result = df[df['digit_count'] > 4].drop('digit_count', axis=1) print(result)
方法二:正则表达式提取数字
利用正则匹配所有数字字符,通过匹配结果的长度统计数字个数:
import pandas as pd import re # 构造示例数据 data = { 'row_num': [1, 2, 3, 4], 'column_1': ['fje8q934yeufoeha', '08kfdjaehewaoffe', '6fdiuewwiaei3eew', 'jfe0293ujfid22fe'] } df = pd.DataFrame(data) # 提取数字并统计数量 df['digit_count'] = df['column_1'].apply(lambda x: len(re.findall(r'\d', x))) # 筛选符合条件的行 result = df[df['digit_count'] > 4].drop('digit_count', axis=1) print(result)
两种方法执行后都会输出符合条件的行:
| row_num | column_1 |
|---|---|
| 4 | jfe0293ujfid22fe |
内容的提问来源于stack exchange,提问作者user16462786
相关产品推荐
相关产品推荐

