首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python密钥错误:0

Python密钥错误:0
EN

Stack Overflow用户
提问于 2021-09-10 03:22:04
回答 1查看 394关注 0票数 2

我想从头开始创建一个相关矩阵。当我尝试使用cov[k].append(covariance)covariance附加到cov字典时,下面的代码给出了一个键错误。我应该如何处理这个错误?

代码语言:javascript
代码运行次数:0
运行
复制
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
EN

回答 1

Stack Overflow用户

发布于 2021-09-10 03:23:30

尝试更改:

代码语言:javascript
代码运行次数:0
运行
复制
        cov[k].append(covariance)

至:

代码语言:javascript
代码运行次数:0
运行
复制
        cov.setdefault(k, []).append(covariance)

使用setdefault

或者使用以下命令:

代码语言:javascript
代码运行次数: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)
        if k in cov:
            cov[k].append(covariance)
        else:
            cov[k] = [covariance]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69126852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档