2017-10-21 24 views
1

私はsumproductのような機能を使用して既存のデータフレームからサブデータフレームを作成するための助けを探しています。私は、列見出しを使用して少額の製品に、このテーブルを変換したい:となったインデックスとの和製品を見出しpython pandasクロス集計サックプロダクト正方行列

dan ste bob 
t1 0 2 0 
t2 2 0 1 
t3 2 1 0 
t4 1 0 2 
t5 0 1 2 

列の値です:

dan ste bob 
dan 9 2 4 
ste 2 6 2 
bob 4 2 9 

ダンはダン= 9(0 *をxは0)+(2 * 2)+(2 * 2)+(1 * 1)+(0 * 0)

ありがとうございます!

+1

はIDKの楽しみのためです。私は 'DataFrame.dot()'メソッドを使って行列の乗算を行うと思います – 0TTT0

答えて

2

あなたはその転置とdotを使用することができます:あなたは.dotを使用しなければならない

In [11]: df.T.dot(df) 
Out[11]: 
    dan ste bob 
dan 9 2 4 
ste 2 6 2 
bob 4 2 9 
0

これはちょうど

df1=pd.DataFrame(index=df.columns,columns=df.columns) 
df1.apply(lambda x : [sum(df[x.name]*df[y]) for y in x.index]) 
Out[65]: 
    dan ste bob 
dan 9 2 4 
ste 2 6 2 
bob 4 2 9 
関連する問題