Finden einer Array-Elementposition in einer Pandas-Frame-Spalte (a.k.a pd.series)
Ich habe einen Pandas-Rahmen, der diesem ähnlich ist:
import pandas as pd
import numpy as np
data = {'Col1' : [4,5,6,7], 'Col2' : [10,20,30,40], 'Col3' : [100,50,-30,-50], 'Col4' : ['AAA', 'BBB', 'AAA', 'CCC']}
df = pd.DataFrame(data=data, index = ['R1','R2','R3','R4'])
Col1 Col2 Col3 Col4
R1 4 10 100 AAA
R2 5 20 50 BBB
R3 6 30 -30 AAA
R4 7 40 -50 CCC
Gegeben eine Reihe von Zielen:
target_array = np.array(['AAA', 'CCC', 'EEE'])
Ich möchte die Zellelementindizes in @ findCol4
die auch im @ erscheintarget_array
.
Ich habe versucht, eine dokumentierte Antwort zu finden, aber es scheint über meine Fähigkeiten hinauszugehen ... Hat jemand einen Rat?
P.S. Übrigens kann ich für diesen speziellen Fall ein Zielarray eingeben, dessen Elemente die Datenrahmenindizes names @ sinarray(['R1', 'R3', 'R5'])
. Wäre es so einfacher?
Edit 1:
Vielen Dank für all die tollen Antworten. Leider kann ich nur eine auswählen, aber jeder scheint @Divakar als die beste zu bezeichnen. Trotzdem sollten Sie sich die Geschwindigkeitsvergleiche von piRSquared und MaxU ansehen, um zu erfahren, welche Möglichkeiten es gib