如何优雅实现从Pandas Series中删除多个含不存在键的指定条目
更简洁的实现方案
Pandas 原生的 Series.drop() 方法已经内置了对不存在索引的处理逻辑,不需要手动计算索引交集,直接指定 errors='ignore' 参数即可:
import pandas as pd series1 = pd.Series({'a':8, 'b':7,'c':6, 'd':5}) list1 = ['b', 'c','e','f'] # 自动忽略不存在的键,只删除存在的对应条目 series1 = series1.drop(list1, errors='ignore')
运行结果和你现有实现完全一致:
a 8 d 5 dtype: int64
补充说明
drop方法默认的errors参数值为raise,遇到不存在的索引会抛出KeyError,改为ignore后会自动跳过不存在的键,符合你的需求。- 如果你更习惯用布尔索引筛选的写法,也可以用下面的实现,效果相同:
series1 = series1[~series1.index.isin(list1)]
内容的提问来源于stack exchange,提问作者user67275
相关产品推荐
相关产品推荐

