Ich habe einen Datenrahmen in PandasSortierung Werte in einer Spalte, die nationalen Agenturen durch die Reihenfolge der anderen Spalte enthält
import pandas as pd
df=pd.DataFrame.from_dict({'col1':['A_2','A_1','A_3','A_4','A_6','A_5','A_8','A_7'],
'col2':['NaN','A_2','A_3','A_4','A_5','NaN','A_1','A_6']}, orient='index').T
Ich möchte die Reihenfolge der zweiten Spalte ändern, col2
und ändern Sie die Elemente so, die sind das gleiche in beiden Spalten zusammenpassen wie folgt aus:
col1 col2
0 A_2 A_2
1 A_1 A_1
2 A_3 A_3
3 A_4 A_4
4 A_6 A_6
5 A_5 A_5
6 A_7 NaN
7 A_8 NaN
Versuch: df.iloc[:,1].sort_values(df.iloc[:,0])
gibt nur eine Fehlermeldung über unhashable Serie
Es wird nun angenommen, dass th ere sind zwei Datenrahmen:
df1:
df1=pd.DataFrame({'col1':['A_2','A_1','A_3','A_4','A_6','A_5','A_8','A_7'],
'col2':[0,1,1,0,0,1,1,0], 'col3':[1,6,7,5,4,3,9,8]})
df2=pd.DataFrame({'N1':['NaN','A_2','A_3','A_4','A_5','NaN','A_1','A_6'],
'N2':['NaN',0,1,2,3,'NaN',0,1], 'N3':['NaN',0,0,0,0,'NaN',0,0]})
Und ich möchte, wie oben sortieren, aber dieses Mal sind alle Spalten und Zeilen in df2
:
Ausgang:
N1 N2 N3
A_2 0 0
A_1 0 0
A_3 1 0
A_4 2 0
A_6 1 0
A_5 3 0
NaN NaN NaN
NaN NaN NaN
Gibt es eine Möglichkeit, dies zu verallgemeinern, um einen ganzen Datenrahmen durch eine Spalte in einem anderen Datenrahmen zu sortieren? – atomsmasher
Geben Sie mir ein Beispiel (zum Beispiel, indem Sie es zu Ihrer ursprünglichen Frage hinzufügen) und ich gebe Ihnen eine Antwort :) – IanS
Ich habe es aktualisiert, danke! :) – atomsmasher