Python的“ for”问题-只能使用MultiIndex进行元组索引

时间:2019-12-11 16:19:19

标签: python arrays pandas

我想要一个大小为N,1的数组C2,并制作一个大小为N-1,1的数组B。

B [0] = C2 [1]

B [1] = C2 [2]

,依此类推。我的代码是:

import numpy as np
import pandas as pd

fields = "B:D"
data = pd.read_excel(r'C:\Users\file.xlsx', "Sheet2", usecols=fields)
N = 2

# Covariance calculation

C1 = data.cov() C2 = data.var()

B = np.zeros(shape=(N,1))

for i in B:
    B[i,1] = C2[i+1,1]

但是错误是:

ValueError: Can only tuple-index with a MultiIndex

我知道这是一个简单的错误,但是找不到:S(新的python用户)

1 个答案:

答案 0 :(得分:1)

首先,您确定需要使用numpy数组吗?这似乎是python列表的工作。

接下来,您对for i in B:意味着什么?我是什么类型?

在这种情况下,遍历B会将i设置为[0.],现在您可以看到下一行替换失败

    B[[0.],i] = C2[[0.]+1,1]

此外,对pd.var()的调用返回一维序列,因此第二个索引没有执行任何操作。

我认为您想像

那样遍历N
for i in range(N):
    B[i,1] = C2[i+1]