Pandas实现:基于Amounts列保留仅出现一次的唯一行
保留Amounts列值唯一的行的解决方法
你之前用的drop_duplicates(subset=['Amounts'])只会删除重复行但保留其中一条,unique也只是提取不重复的值,都没法直接实现“完全移除所有出现过多次的值”的需求。要达成目标,得先统计每个Amounts值的出现次数,再筛选出仅出现一次的行:
方法一:分步实现
- 先统计Amounts列各值的出现次数
amount_counts = df_1['Amounts'].value_counts()
- 提取出仅出现一次的Amounts值
single_amounts = amount_counts[amount_counts == 1].index
- 用这些值过滤原DataFrame
filtered_df = df_1[df_1['Amounts'].isin(single_amounts)]
方法二:一行代码简化
直接通过map函数关联次数统计结果,再筛选:
filtered_df = df_1[df_1['Amounts'].map(df_1['Amounts'].value_counts()) == 1]
最终输出结果
运行后得到的filtered_df就是你要的结果:
Col_A Amounts 1 B 200 5 F 300
内容的提问来源于stack exchange,提问作者Rip_027
相关产品推荐
相关产品推荐

