2

我正在尝试计算数据框和系列的点积,但我得到了ValueError: matrices are not aligned,我真的不明白为什么。我明白了

    if (len(common) > len(self.columns) or len(common) > len(other.index)):
              raise ValueError('matrices are not aligned')

带有错误消息,我完全理解。但是当我检查我的系列时,它有 25 个值:

    weights
    Out[193]: 
    0     0.000002
    1     0.000577
    2     0.002480
    3     0.004720
    4     0.003640
    5     0.001480
    6     0.000054
    7     0.000022
    8     0.009060
    9     0.000511
    10    0.034900
    11    0.140000
    12    0.065600
    13    0.325000
    14    0.072900
    15    0.031100
    16    0.209000
    17    0.003280
    18    0.001390
    19    0.002100
    20    0.000847
    21    0.009560
    22    0.006320
    23    0.014000
    24    0.061900
    Name: 3, dtype: float64

当我检查我的数据框时,它也有 25 列:

    In [195]: data
    Out[195]: 
    <class 'pandas.core.frame.DataFrame'>
    Int64Index: 131 entries, 0 to 130
    Data columns (total 25 columns):

(ETC)

所以我明白为什么我会收到错误消息。我在这里想念什么?

一些附加信息:我正在使用weightedave=data.dot(weights) 并且我刚刚在点代码中发现它确实common = data.columns.union(weights.index)可以获取common错误消息中的引用。所以我测试了它,但在我的情况下,它变成了

    In[220]: common
    Out[220]: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, u'100_AVET', u'101_AVET', u'102_AVET', u'13_AVET', u'14_AVET', u'15_AVET', u'18_AVET', u'19_AVET', u'20_AVET', u'22_AVET', u'36_AVET', u'62_AVET', u'74_AVET', u'78_AVET', u'79_AVET', u'80_AVET', u'83_AVET', u'85_AVET', u'86_AVET', u'88_AVET', u'94_AVET', u'95_AVET', u'96_AVET', u'97_AVET', u'99_AVET'], dtype=object)

这确实比我的列/索引数(25)长(50)。我应该重命名我的系列还是数据框中的列?

4

0 回答 0