问题描述
我有一个数据框,其中包含许多问题的答案。
每一行代表一个回答者,各列是对给定问题的答案 因为人们经常向那些调查表发送垃圾邮件,所以有时会有回答者多次给出相同的答案,例如“是”,“是” ....
我想删除重复了一次或两次以上相同答案的行(因为一次重复可能是巧合)
我的数据框看起来像这样:问题因文件而异,但第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