Calculate correlation between columns produce error: unsupported operand/ cannot convert the series

Calculate correlation between columns produce error: unsupported operand/ cannot convert the series

我想计算数据框中所有列(连续)与目标变量(二进制)之间的点双序列相关。我想要列表中的结果。

我的代码:

corr_list= {}
for column in df:
    corr_list= stats.pointbiserialr(df[column], df['target'])
    print (corr_list)

这是错误:

TypeError: unsupported operand type(s) for +: 'float' and 'str'

我尝试用 float/int 解决这个问题,但它不起作用:

corr_list= {}
for column in df
    x= float(df[column])
    y= float(df['target'])
    corr_list= stats.pointbiserialr(x, y)
    print (corr_list)

这是错误:

TypeError: cannot convert the series to <class 'float'>

您不能将 pandas 系列对象转换为浮动对象。

而是使用 Series 内置方法 astype():

corr_list = {}
y = df['target'].astype(float)
for column in df
    x = df[column].astype(float)
    corr = stats.pointbiserialr(x, y)
    corr_list[column] = corr 
print(corr_list)