我想从头开始创建一个相关矩阵。当我尝试使用cov[k].append(covariance)
将covariance
附加到cov
字典时,下面的代码给出了一个键错误。我应该如何处理这个错误?
import pandas as pd
df = pd.read_csv('C:/Users/User/Downloads/Admission_Predict.csv')
df = df.sample(frac=1)
mean = df.mean()
cov = {}
for j in range(len(mean)):
total = 0
for k in range(len(mean)):
terms = ((df.iloc[i, j] - mean.iloc[j]) * (df.iloc[i, k] - mean.iloc[k]) for i in range(len(mean)))
covariance = sum(terms) / len(mean)
cov[k].append(covariance)
# Coerce the cov list into a dataframe
cov = pd.DataFrame(cov)
print(cov)
> Traceback (most recent call last): File
> "C:\Users\User\PycharmProjects\algorithms\mod2.py", line 14, in
> <module>
> cov[k].append(covariance) KeyError: 0
发布于 2021-09-09 19:23:30
尝试更改:
cov[k].append(covariance)
至:
cov.setdefault(k, []).append(covariance)
使用setdefault
。
或者使用以下命令:
for k in range(len(mean)):
terms = ((df.iloc[i, j] - mean.iloc[j]) * (df.iloc[i, k] - mean.iloc[k]) for i in range(len(mean)))
covariance = sum(terms) / len(mean)
if k in cov:
cov[k].append(covariance)
else:
cov[k] = [covariance]
https://stackoverflow.com/questions/69126852
复制相似问题