Python 分类变量和数值变量之间的相关性:类型错误

Python 分类变量和数值变量之间的相关性:类型错误,python,pandas,numpy,Python,Pandas,Numpy,我在计算分类变量和数值变量之间的相关性时遇到了一些问题。 我有一个数据集(标题(5)如下所示): 我想找出C和Label之间的关系。因为C包含分类变量,所以我使用了一个伪变量,如下所示: df_dummies = pd.get_dummies(df['C']) del df_dummies[df_dummies.columns[-1]] df_new = pd.concat([df, df_dummies], axis=1) del df_new['C] 但是,当我计算相关性时,如下所示 x

我在计算分类变量和数值变量之间的相关性时遇到了一些问题。 我有一个数据集(标题(5)如下所示):

我想找出C和Label之间的关系。因为C包含分类变量,所以我使用了一个伪变量,如下所示:

df_dummies = pd.get_dummies(df['C'])
del df_dummies[df_dummies.columns[-1]]
df_new = pd.concat([df, df_dummies], axis=1)
del df_new['C]
但是,当我计算相关性时,如下所示

x = df_new.values
correlation_matrix = np.corrcoef(x.T)
print(correlation_matrix)
我得到这个错误:

TypeError: unsupported operand type(s) for /: 'str' and 'int'

如果为了解决问题,我在计算相关性时遗漏了一个步骤,您能告诉我吗?

回想一下相关性的定义是

r=cov(X,Y)/sqrt(var(X)var(Y))

所以你不能和常数有关联,因为它的方差是0,C总是gt2016。但假设存在变化,以下代码将用于获取标签和每个C值之间的相关性:

df=pd.DataFrame({'A':['a1','a2','b13','a5','b12'],'C':['gt2016']*4+['hi'],'Label':[0,0,0,1,1]})
df_dummies=pd.get_dummies(df['C'])
df_new=pd.concat([df.drop('C',轴=1),df_假人],轴=1)
df_new.corr()

谢谢卡梅伦。是的,你完全正确。实际上,它们是前5个变量,我的C列只包含两个可能的值,
gt2016
l2016
TypeError: unsupported operand type(s) for /: 'str' and 'int'