我有一个贷款表,其特征是 * 国家 * 和 * 部门 *。
| 贷款数量|行业|国家|
| - -----|- -----|- -----|
| 贷款1|食物|德国|
| 贷款2|电信|意大利|
| 贷款3|汽车|日本|
| 贷款4|食物|日本|
| 贷款5|电信|德国|
| 贷款6|汽车|意大利|
我需要使用以下规则定义相关矩阵:
- 如果两笔贷款具有相同的行业和国家,则它们的相关性为35%
- 如果两笔贷款有相同的国家,它们的相关性为25%
- 如果两笔贷款具有相同的部门,则它们的相关性为25%
- 否则,它们的相关性为5%
| 贷款数量|贷款1|贷款2|贷款3|贷款4|贷款5|贷款6|
| - -----|- -----|- -----|- -----|- -----|- -----|- -----|
| 贷款1| 1|- -一种|- -一种|- -一种|- -一种|- -一种|
| 贷款2|零点零五|1|- -一种|- -一种|- -一种|- -一种|
| 贷款3|零点零五|零点零五|1|- -一种|- -一种|- -一种|
| 贷款4|零点二五|零点零五|零点二五|1|- -一种|- -一种|
| 贷款5|零点二五|零点二五|零点零五|零点零五|1|- -一种|
| 贷款6|零点零五|零点二五|零点二五|零点零五|零点零五|1|
我用迭代创造了它有没有更聪明的方法?谢谢
corr = np.zeros((10,10))
for i in range(df.shape[0]):
for j in range(df.shape[0]):
if df.loan[i] == df.loan[j]:
corr[i,j] = 1
else:
if (df.sector[i] == df.sector[j]) and (df.country[i] == df.country[j]):
corr[i,j] = 0.6
else:
if (df.sector[i] == df.sector[j]) or (df.country[i] == df.country[j]):
corr[i,j]=0.4
else:
corr[i,j]=0.2
1条答案
按热度按时间ep6jt1vc1#
印刷品