Ho un telaio panda simile a questo:Ricerca di un posto elementi della matrice in una colonna telaio pandi (alias pd.series)
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
Dato un array di obiettivi:
target_array = np.array(['AAA', 'CCC', 'EEE'])
I vorrebbe trovare gli indici di elementi di cella in Col4
che compaiono anche nello target_array
.
Ho cercato di trovare una risposta documentata ma sembra oltre le mie capacità ... Qualcuno ha qualche consiglio?
P.S. Per inciso, per questo caso particolare posso inserire un array di destinazione i cui elementi sono i nomi degli indici del frame dati array(['R1', 'R3', 'R5'])
. Sarebbe più facile in questo modo?
Edit 1:
Grazie mille per tutte le grandi risposte. Purtroppo posso sceglierne solo uno, ma tutti sembrano indicare @Divakar come il migliore. Ancora si dovrebbe guardare piRSquared e MaxU confronti di velocità per tutte le possibilità disponibili
Questo è più veloce! – piRSquared
@piRSquared Beh, speravo tanto, essere una cosa di NumPy! ;) – Divakar
Lo terrò sicuramente a mente. – piRSquared