如何使用Pandas原生函数筛选Series中仅含None值的键?
筛选Pandas Series中值为None的元素
你可以用两种Pandas原生方式实现需求,逻辑和DataFrame的掩码筛选本质一致,只是Series是一维结构,操作更简洁:
方法1:isna() / isnull() + 布尔索引
这是最直接的方式,调用isna()(或等价的isnull())会生成一个布尔Series,值为True的位置对应原Series里的空值(包括None),用这个布尔Series作为索引就能筛选出目标元素:
import pandas as pd my_series = pd.Series({ "foo": "some string", "bar": "some string", "bam": None, }) # 两种写法功能完全一致,选一种即可 new_series = my_series[my_series.isna()] # new_series = my_series[my_series.isnull()]
执行后得到的new_series就是预期结果:
bam None dtype: object
方法2:反向利用notna()
如果你习惯用notna()判断非空值,可以通过取反掩码来筛选空值:
new_series = my_series[~my_series.notna()]
补充说明
Pandas中,存入None的object类型Series会保留None显示,但空值判断逻辑和NaN通用,所以上述方法都能准确识别并筛选。
内容的提问来源于stack exchange,提问作者Parmandeep Chaddha
相关产品推荐
相关产品推荐

