Pandas:使用Lambda函数过滤仅含一个句号的行
使用Lambda函数筛选仅含一个句号的行
完全可以优先用Lambda函数实现这个需求,下面给出两种常见场景下的实现方式:
场景1:基于Pandas处理表格数据
import pandas as pd # 构造样本数据 data = { 'temp': ['a. b', 'a b', 'a. b. c', 'ab.c'] } df = pd.DataFrame(data) # 用Lambda函数配合apply筛选目标行 filtered_df = df[df['temp'].apply(lambda x: x.count('.') == 1)] print(filtered_df)
执行后输出的结果就是需求中要求的表格:
| temp |
|---|
| a. b |
| ab.c |
代码说明
lambda x: x.count('.') == 1 会逐个检查temp列的字符串,统计其中句号的数量,当数量恰好为1时返回True,apply方法将这个逻辑作用于每一行,最终筛选出符合条件的记录。
场景2:基于普通列表处理数据
如果只是处理字符串列表,也可以用Lambda配合filter函数实现:
temp_list = ['a. b', 'a b', 'a. b. c', 'ab.c'] filtered_list = list(filter(lambda x: x.count('.') == 1, temp_list)) print(filtered_list) # 输出结果: ['a. b', 'ab.c']
内容的提问来源于stack exchange,提问作者KLG
相关产品推荐
相关产品推荐

