1
私が持っているような単純なパンダのデータフレームこの1:パンダのデータフレームでループネストされた効率的な
d = {'col1': ['a','b','c','d','e'], 'col2': [1,2,3,4,5]}
df = pd.DataFrame(d)
df
col1 col2
0 a 1
1 b 2
2 c 3
3 d 4
4 e 5
そして、私はそれを反復するために、すべてのための簡単な計算結果(製品のようなまたはそう)を取得する必要があります行の値の組み合わせ
size = df.shape[0]
mtx = np.zeros(shape=(size, size))
mtx
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
しかし、私は何とか「感覚」は、ネストされたループよりも、これを行うには、より効率的な方法は次のように、そこにある:私はこのように、行列を作り、中に値を入れて考えていた
for index1, c11, c12, in df.itertuples():
for index2, c21, c22 in df.itertuples():
mtx[index1][index2] = float(c12) * float(c22)
mtx
array([[ 1., 2., 3., 4., 5.],
[ 2., 4., 6., 8., 10.],
[ 3., 6., 9., 12., 15.],
[ 4., 8., 12., 16., 20.],
[ 5., 10., 15., 20., 25.]])
どんなアイデアでも大歓迎です!ありがとう! (この例では、*
のためですが、あなたは+,-
や/
をしたい場合は、ちょうど最後の行での動作を変更することができます)
import numpy as np
import pandas as pd
d = {'col1': ['a','b','c','d','e'], 'col2': [1,2,3,4,5]}
df = pd.DataFrame(d)
a=np.array([df.col2.tolist()])
a.T*a
結果は次のとおりです。あなたは次の操作を行うことができます*,+,-,/
ようoprationsについては