9

パンダのデータフレームとシリーズの行列乗算をしたい

df = pandas.DataFrame({'a':[4,1,3], 'b':[5,2,4]},index=[1,2,3])
ser = pandas.Series([0.6,0.4])

df は、

 a  b
1  4  5
2  1  2
3  3  4

サーは、

0    0.6
1    0.4

私の望む結果は、行列の積です。

答えは、

numpy ドット演算子を使用してデータフレームを再構築することでこれを行うことができます

c = a.values.dot(b.transpose())
c = pandas.DataFrame(c, index = a.index, columns = ['ans'])
print c


   ans
1  4.4
2  1.4
3  3.4

これを行うためのパンダのネイティブメソッドはありますか?

4

1 に答える 1

16

パンダの暗黙性はシリーズのインデックスに合わせて、ドット関数を使用します

In [3]: df = pd.DataFrame({'a' : [4,1,3], 'b' : [5,2,4]},index=[1,2,3])

In [4]: s = pd.Series([0.6,0.4],index=['a','b'])

In [5]: df.dot(s)
Out[5]: 
1    4.4
2    1.4
3    3.4
于 2013-03-15T17:58:55.163 に答える