Pandas如何删除指定列取值仅出现一次的对应数据行
pandas删除指定列取值仅出现一次的行的方法
你可以通过统计Dog列各取值的出现次数,再筛选出次数大于1的行即可,两种常用实现方式如下:
- 方法1:结合
value_counts和map实现
代码示例:import pandas as pd # 构造示例数据表 df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Chris', 'Ferri', 'Bob2', 'Dave2'], 'Dog': ['husky', 'husky', 'pom', 'malamute', 'corgi', 'corgi'] }) # 统计Dog列各值的出现次数 dog_count = df['Dog'].value_counts() # 筛选出出现次数大于1的行 df_result = df[df['Dog'].map(dog_count) > 1] - 方法2:用
groupby+transform更简洁实现
代码示例:df_result = df[df.groupby('Dog')['Dog'].transform('count') > 1]
执行后得到的df_result就是你需要的目标结果,仅保留了Dog列取值为husky、corgi的对应行。
内容的提问来源于stack exchange,提问作者bobglu
相关产品推荐
相关产品推荐

