Ich habe derzeit ein Datenrahmen, die etwa wie folgt aussieht:Pandas Better Way zu trimmen Daten
df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [100,100,30,40],'CCC' : [100,100,30,-50]})
ich auch den Datenrahmen haben:
df1 = pd.DataFrame({'AAA' : [4], 'BBB' : [100]})
wo ich
relevantColumns=['AAA','BBB']
definieren
das ist nur eine Liste der Spalten, die df1.
Ich möchte den Index finden, für die DF1 in df erscheint. Im Moment habe ich etwas, das wie folgt aussieht,
trueNFalses=(df==df1)[columnsToSort] #This generates a boolean dataframe
#Now I want to find the row with two trues in it, this is the row where df1 appears.
numTrues=trueNFalses.sum(axis=1)
#Now I look through numTrues and find the index of every values of 2,
#because that is where there were two trues.
indices=numTrues[numTrues==len(columnsToSort)].axes
Ich auch, was fühlt sich an wie eine sehr rund um die Berechnung nur auf die Indizes, wo df hat die Spalten hat, die df1 hat. Ich fühle mich albern, all das zu tun, weil ich fast sicher bin, dass es einen besseren Weg gibt, dies in Pandas zu tun. Meine Technik hat auch ein paar Nachteile, die ich gerne beheben würde, weiß aber nicht wie. Zum Beispiel brauche ich wirklich Indizes, um ein Datenrahmen zu sein, aber mit meinem Code ist es eine Liste von dtype-Objekt, das für zukünftige Verarbeitung ungeschickt ist.
Dank das ist genau das, was ich für war lookin !! –