如何在pandas中保留指定值,将低频次列值替换为None?
修改方案:保留指定项的同时替换低频次值
修改后的代码
# 指定需要保留的项 keep_item = 'Tiger' # 构建筛选条件:出现次数少于2次 且 不是指定保留项 mask = (df.groupby('Column A')['Column A'].transform('count').lt(2)) & (df['Column A'] != keep_item) # 对符合条件的行进行替换 df.loc[mask, 'Column A'] = None # 若需替换为字符串"None",可改为"None"
逻辑说明
原代码仅通过「出现次数少于2次」作为替换条件,导致出现次数不足的指定项(如示例中的Tiger)被误替换。新增的df['Column A'] != keep_item判断,会将指定项从替换范围中排除,确保即使它的出现次数不达标,也能保留原始值。
执行结果
| Column A | Column B |
|---|---|
| Cat | Fish |
| Cat | Bone |
| None | Fish |
| Dog | Bone |
| Dog | Bone |
| Tiger | Bone |
内容的提问来源于stack exchange,提问作者kenny
相关产品推荐
相关产品推荐

