Yog*_*dan 1 python correlation pandas
我正在尝试计算数据集中一组列的点双列相关性。我可以对单个变量执行此操作,但是如果我需要在一次迭代中计算所有列,则会显示错误。
下面是代码:
df = pd.DataFrame({'A':[1, 0, 1, 0, 1], 'B':[6, 7, 8, 9, 10],'C':[9, 4, 6,9,10],'D':[8,9,5,7,10]})
from scipy import stats
corr_list = {}
y = df['A'].astype(float)
for column in df:
x = df[['B','C','D']].astype(float)
corr = stats.pointbiserialr(x, y)
corr_list[['B','C','D']] = corr
print(corr_list)
TypeError: No loop matching the specified signature and casting was found for ufunc add
Run Code Online (Sandbox Code Playgroud)
您可以使用该pd.DataFrame.corrwith()功能:
df[['B', 'C', 'D']].corrwith(df['A'].astype('float'), method=stats.pointbiserialr)
输出将是列及其与目标 DataFrame 或 Series 的相应相关性和 p 值(分别为第 0 行和第 1 行)的列表。链接到文档:
B C D
0 4.547937e-18 0.400066 -0.094916
1 1.000000e+00 0.504554 0.879331
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5455 次 |
| 最近记录: |