如何使用Fuzzywuzzy将熊猫列中的相似字符串合并在一起

时间:2020-06-13 11:04:21

标签: pandas fuzzywuzzy

我正在分析调查数据。问题之一是您最喜欢什么游戏。这是一个自由文本字段,因此有时用户回答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。

0 个答案:

没有答案