如何获取两列之间的相关性?

3

I have such a dataframe df:

time | Score| weekday
01-01-21 12:00 | 1 | Friday
01-01-21 24:00 | 33 | Friday
02-01-21 12:00 | 12 | Saturday
02-01-21 24:00 | 9 | Saturday
03-01-21 12:00 | 11 | Sunday
03-01-21 24:00 | 8 | Sunday

我现在想要获取 Scoreweekday 列之间的相关性。

我采取了以下步骤来获取它:

s_corr = df.weekday.str.get_dummies().corrwith(df['Score'])
print (s_corr)

我现在想知道这样做是否正确?还是创建一个新的数据框架,按照每天的time列首先对所有行进行求和,然后使用上面的代码获取Scoreweekday之间的相关性会更好?或者还有其他改进建议吗?


请查看有关此内容的Pandas文档:https://pandas.pydata.org/docs/reference/api/pandas.Series.corr.html在您的情况下,这意味着df ['Score'] .corr(other = df ['weekday'])或类似的内容。看起来您的“分数”列不是浮点类型,因此可能需要先将其转换为浮点数。 - Patrickens
嗯,我不认为这是我的问题的答案。我的代码可以工作,但我不知道它是否是正确的做法。 - Tobitor
我不确定正确的方法是什么,但您正在寻找分类变量(星期几)和离散变量(得分)之间的相关性。最好查找scipy.stats以获取适当的测试,尽管我不知道哪个!有一个关于相关函数的部分。 - Alex
你好,Alex,是的,Score是一个离散变量。我会查看你的链接。谢谢! :-) - Tobitor
1个回答

1
我以前使用过numpy.corrcoef来获取连续和分类变量之间的相关性。你可以尝试一下,看看它是否适用于你:
我首先为分类变量创建了虚拟变量:
df_dummies = pd.get_dummies(df['weekday'], drop_first= True)
df_new = pd.concat([df['Score'], df_dummies], axis=1)

我随后将带有 dummies 的 DataFrame 转换为 numpy 数组,并同样应用了 corrcoef

df_arr = df_new.to_numpy()
corr_matrix = np.corrcoef(df_arr.T)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接