我正在分析调查数据。问题之一是您最喜欢什么游戏。这是一个自由文本字段,因此有时用户回答1、2、3个项目,有时不回答。因为它是自由文本,所以字符串可以相同,但是用户可能会引入额外的空格或其他字符,或者名称拼写错误。我该如何替换这些相似的值,以便将“不知道”,“ dk”,“现在不知道”,“不记得”计为同一字符串?
这是数据帧的摘要。
Q4_1 Q4_2 Q4_3 Q4_4 Q4_5 Q4_6 Q4_7 Q4_8 \
0 dark soul valkiring NaN NaN NaN NaN NaN NaN
1 Don't know NaN NaN NaN NaN NaN NaN NaN
2 World of Warcraft Fallout 3 Fallout 4 NaN NaN NaN NaN NaN
3 Don`t know NaN NaN NaN NaN NaN NaN NaN
4 warcraft NaN NaN NaN NaN NaN NaN NaN
5 don't know NaN NaN NaN NaN NaN NaN NaN
6 Mass Effect Series Skyrim Fallout 4 Tomb Raider NaN NaN NaN NaN
7 dark souls NaN NaN NaN NaN NaN NaN NaN
8 none NaN NaN NaN NaN NaN NaN NaN
9 candy cruss NaN NaN NaN NaN NaN NaN NaN
Q4_9 Q4_10
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 NaN NaN
5 NaN NaN
6 NaN NaN
7 NaN NaN
8 NaN NaN
9 NaN NaN
print(df_survey_Q4.head(10).stack())
0 Q4_1 dark soul
Q4_2 valkiring
1 Q4_1 Don't know
2 Q4_1 World of Warcraft
Q4_2 Fallout 3
Q4_3 Fallout 4
3 Q4_1 Don`t know
4 Q4_1 warcraft
5 Q4_1 don't know
6 Q4_1 Mass Effect Series
Q4_2 Skyrim
Q4_3 Fallout 4
Q4_4 Tomb Raider
7 Q4_1 dark souls
8 Q4_1 none
9 Q4_1 candy cruss
dtype: object
print(df_survey_Q4.head(10).stack()。value_counts())
Fallout 4 2
Skyrim 1
Fallout 3 1
World of Warcraft 1
valkiring 1
don't know 1
Tomb Raider 1
none 1
warcraft 1
dark souls 1
Mass Effect Series 1
dark soul 1
Don`t know 1
Don't know 1
candy cruss 1
dtype: int64
因此,在此代码段中,我希望“不知道”,“不知道”和“不知道”都没有被收集在一起,它计为3,而不是每个人都计为1。