2016-10-01 8 views
2

Iは、2つのデータフレームクロネッカー積パンダのデータフレーム

A B 
0 1 2 
1 1 2 
2 1 2 

C D 
0 1 4 
1 2 5 
2 3 6 

Iを有するクロス製品(AC、AD、BC、BD)の平均値を必要とします。そのように私は計算できるようにしたいと考えていた。

AC AD BC BD 
0 1 4 2 8 
1 2 5 4 10 
2 3 6 6 12 

しかしこれまで私はこれを行うことができなかった。私は倍増などを試みたが役に立たなかった。私はループを使ってそれを行うことはできますが、それを行うエレガントな方法はありますか?

乾杯、マイク・

+0

恐らくこれを行う最も簡単な方法は 'np.cron(a、b)'です。 – JohnE

答えて

2

はその後クロネッカー積は

kp = pd.DataFrame(np.kron(d1, d2), columns=pd.MultiIndex.from_product([d1, d2])) 
kp 

enter image description here


でデータフレーム d1d2

d1 = pd.DataFrame([[1, 2]] * 3, columns=list('AB')) 
d2 = pd.DataFrame(np.arange(1, 7).reshape(2, 3).T, columns=list('CD')) 

考えます


これは、各列のペアのouterの製品を平坦化するのと同じです。 cross製品。

関連する問題