Individuali (indicizzati da 0 a 5) scegliere tra due posizioni: A e B. I miei dati hanno un ampio formato contenente caratteristiche che variano da individuo (ind_var) e caratteristiche che variano solo in base alla posizione (location_var).Complicato (per me) rimodellamento da largo a lungo in Panda
Per esempio, ho:
In [281]:
df_reshape_test = pd.DataFrame({'location' : ['A', 'A', 'A', 'B', 'B', 'B'], 'dist_to_A' : [0, 0, 0, 50, 50, 50], 'dist_to_B' : [50, 50, 50, 0, 0, 0], 'location_var': [10, 10, 10, 14, 14, 14], 'ind_var': [3, 8, 10, 1, 3, 4]})
df_reshape_test
Out[281]:
dist_to_A dist_to_B ind_var location location_var
0 0 50 3 A 10
1 0 50 8 A 10
2 0 50 10 A 10
3 50 0 1 B 14
4 50 0 3 B 14
5 50 0 4 B 14
La 'location' variabile è quello scelto dal singolo. dist_to_A è la distanza alla posizione A dalla location scelta da parte dell'individuo (stessa cosa con dist_to_B)
vorrei i miei dati ad avere questa forma:
choice dist_S ind_var location location_var
0 1 0 3 A 10
0 0 50 3 B 14
1 1 0 8 A 10
1 0 50 8 B 14
2 1 0 10 A 10
2 0 50 10 B 14
3 0 50 1 A 10
3 1 0 1 B 14
4 0 50 3 A 10
4 1 0 3 B 14
5 0 50 4 A 10
5 1 0 4 B 14
dove la scelta == 1 indica individuale ha scelto quella posizione e dist_S è la distanza dalla posizione scelta.
Ho letto sul metodo .stack ma non sono riuscito a capire come applicarlo per questo caso. Grazie per il tuo tempo!
NOTA: questo è solo un semplice esempio. I set di dati che sto cercando hanno un numero variabile di ubicazioni e numero di individui per posizione, quindi sono alla ricerca di una soluzione flessibile, se possibile
Grazie Zhen Sun, questo sembra un approccio molto più pulito. Tuttavia, non corrisponde al mio problema. La variabile 'location' non ha errori. La variabile 'dist_to_' dovrebbe avere la distanza tra l'individuo (indicato dall'indice) e la posizione. La scelta indica ciò che l'individuo ha scelto in questa occasione (ha scelto la posizione A o B). Ho cercato di chiarirlo nella mia domanda, ma se non è ancora chiaro fammelo sapere e posso riscriverlo un po '. – cd98
@ cd98, penso di aver capito la tua domanda. Sto dicendo nel tuo lungo tavolo, la variabile 'location' non sembra abbastanza corretta. In che modo 'ID = 0' ha' location' sia 'A' che' B'? 'ID = 0' si trova in' A' in base alla tabella larga. Inoltre, non capisco perché l'approccio non corrisponde al tuo problema. –
ID identifica l'individuo. Ogni individuo sceglie tra la scelta A o B. I dati originali hanno solo i dati per la scelta che l'individuo prende. Il formato "lungo" che stavo cercando ha sia scelte per individuo che caratteristiche della scelta, incluse caratteristiche che dipendono solo dall'individuo (ind_var), solo dalla posizione (posizione var) o dall'individuo e dalla scelta (tale come posizione). Ogni ind. scegli solo una posizione. È un formato strano, ma è quello che richiede il mio programma di statistiche. Scusa se non era chiaro, spero che sia ora! Grazie per la tua disponibilità! – cd98