估计Python中的相关性

问题描述

我有一个带有标签用户名的数据集:

Labels   Usernames
1         Londonderry
1         Londoncalling
1          Steveonder43
0         Maryclare_re
1         Patent107391
0         Anonymous 
1         _24londonqr
... 

我需要证明包含伦敦字的用户名标签1之间存在关联。为此,我创建了第二个标签以查看伦敦字在哪里

for idx,username in df['Usernames']:
    if 'London' in username:
        df['London'].iloc[idx] = 1
    else:
        df['London'].iloc[idx] = 0

然后,我使用Pearson相关系数比较了这些二进制变量:

import scipy.stats.pearsonr as rho
corr = rho(df['labels'],df['London'])

但是它不起作用。 我在上述步骤中缺少什么吗?

解决方法

您的数据框中有Labels,但是您通过了labels,我也通过contains增强了代码

df['London'] = df['Usernames'].str.contains('London').astype(int)
from scipy import stats
stats.pearsonr(df['Labels'],df['London'])
Out[12]: (0.4,0.37393392381774704)