Ich bemerkte frühere Versionen meiner question schlug die Verwendung von Abfragen, aber ich habe eindeutige Datenrahmen, die nicht die gleichen Spaltennamen haben. Ich möchte diese Formel codieren, ohne Schleifen für und mit nur Funktion anwenden:Pandas gelten Lambda mehrere Argumente keine Abfrage andere Datenrahmen
Hier werden die Variablen initialisiert. mu = μ und die anderen Variablen sind wie folgt:
mu=pd.DataFrame(0, index=['A','B','C'], columns=['x','y'])
pij=pd.DataFrame(np.random.randn(500,3),columns=['A','B','C'])
X=pd.DataFrame(np.random.randn(500,2),columns=['x','y'])
nächst ich bin in der Lage verschachtelt verwenden, um Schleifen dieses zu lösen
for j in range(len(mu)):
for i in range(len(X)):
mu.ix[j,:]+=pij.ix[i,j]*X.ix[i,['x','y']]
mu.ix[j,:]=(mu.ix[j,:])/(pij.ix[:,j].sum())
mu
x y
A 0.147804 0.169263
B -0.299590 -0.828494
C -0.199637 0.363423
Meine Frage ist, ob es möglich ist, die verschachtelten nicht verwenden for loops oder entfernen Sie sogar eine for loop, um dies zu lösen. Ich habe schwache Versuche vergeblich gemacht.
Sogar meine ersten Versuche führen zu mehreren NaNs.