Ich bin neu in Pandas, und ich versuche, mehrere Spalten im Gegensatz zu nur einer zuordnen. This page zeigt mir, wie man es mit einer pd.Series
macht, aber ich kann nicht herausfinden, wie man mehrere columns
abbildet.Mapping Datenrahmen nicht Serie Pandas
Hier ist meine zwei DataFrames
Ich versuche map
.
data2=pd.DataFrame(np.random.randn(5,2),index=range(0,5),columns=['x','y'])
data2['Cluster']=['A','B','A','B','C']
centers2=pd.DataFrame(np.random.randint(0,10,size=(3,2)),index= ['A','B','C'],columns=['x','y'])
Hier data2
wie folgt aussieht:
data2
x y Cluster
0 0.151212 -0.168855 A
1 -0.078935 1.933378 B
2 -0.388903 0.444610 A
3 0.622089 1.609730 B
4 -0.346856 1.095834 C
und centers2
wie folgt aussieht:
centers2
x y
A 6 4
B 6 0
C 4 1
Ich möchte zwei separate Spalten in data2
erstellen, mit dem entsprechenden center2
Matching. Hier ist meine Hand-Versuch
data2['Centers.x']=[6,6,6,6,4]
data2['Centers.y']=[4,0,4,0,1]
data2
x y Cluster Centers.x Centers.y
0 0.151212 -0.168855 A 6 4
1 -0.078935 1.933378 B 6 0
2 -0.388903 0.444610 A 6 4
3 0.622089 1.609730 B 6 0
4 -0.346856 1.095834 C 4 1
Wie kann ich dies mit der map
Funktion? (Ich weiß, wie diese Loops zu tun, ich brauche eine vektorisiert Lösung.)
Ja, es ist am einfachsten, aber die Sortierung wurde geändert. – jezrael
Das ist richtig, hinzugefügt '.sort_index()' um sicherzustellen, dass sortiert wird. – Stefan
Würde gerne - wo ist es? – Stefan