熊猫点产品

时间:2014-02-20 19:06:07

标签: python pandas dot-product

我正在尝试计算数据框和系列的点积,但我得到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):

(等)

所以我理解为什么会收到错误消息。我在这里缺少什么?

其他一些信息: 我正在使用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)。我应该重命名我的系列还是数据框中的列?

0 个答案:

没有答案