当任何列重复时,从Pandas Dataframe中删除一行

问题描述

我有一个数据框,其中包含许多问题的答案。

每一行代表一个回答者,各列是对给定问题的答案 因为人们经常向那些调查表发送垃圾邮件,所以有时会有回答者多次给出相同的答案,例如“是”,“是” ....

我想删除重复了一次或两次以上相同答案的行(因为一次重复可能是巧合)

我的数据框看起来像这样:问题因文件而异,但第0列始终是ID,其余所有列始终是问题,并且其编号各不相同。

ID,问题1,问题2,问题3,问题4,...

Id1,答案。 str1,答案。 string2,回答。 string3,回答。字符串4,...

Id2,答案。 str1,答案。 string2,回答。 string3,回答。字符串4,...

Id3,答案。 str1,答案。 string2,回答。 string3,回答。字符串4,...

Id4,答案。 str1,答案。 string2,回答。 string3,回答。字符串4,...

我需要删除的行包含多个问题的相同答案 理想情况下,我希望能够调整发现要删除的行的相同答案的数量。因为当您拥有大型问卷时,两个答案可能是相同的,而不会成为垃圾邮件发送者。如果这种情况不容易,请尝试在任意两个相同的情况下放弃。

解决方法

# importing pandas package 
import pandas as pd 

data = {'ID':  ['Id1','Id2','Id3','Id4'],'Question 1':  ['Ans. str1','Ans. string1','Ans. string1'],'Question 2':  ['Ans. str2','Ans. string2','Ans. string2'],'Question 3':  ['Ans. str3','Ans. string3','Ans. string3'],'Question 4':  ['Ans. str4','Ans. string4','Ans. string4']
       }
        
        
df = pd.DataFrame (data)        
    

输出

    ID  Question 1  Question 2  Question 3  Question 4
0   Id1     Ans. str1   Ans. str2   Ans. str3   Ans. str4
1   Id2     Ans. string1    Ans. string2    Ans. string3    Ans. string4
2   Id3     Ans. string1    Ans. string2    Ans. string3    Ans. string4
3   Id4     Ans. string1    Ans. string2    Ans. string3    Ans. string4

删除重复的行

df = df.drop_duplicates()
print(df)

    ID Question 1 Question 2 Question 3 Question 4
0  Id1  Ans. str1  Ans. str2  Ans. str3  Ans. str4

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...