Ho un frame di dati panda che assomiglia a questo (la sua una bella grande)Aggiornamento un dataframe in panda, mentre l'iterazione riga per riga
date exer exp ifor mat
1092 2014-03-17 American M 528.205 2014-04-19
1093 2014-03-17 American M 528.205 2014-04-19
1094 2014-03-17 American M 528.205 2014-04-19
1095 2014-03-17 American M 528.205 2014-04-19
1096 2014-03-17 American M 528.205 2014-05-17
ora vorrei per scorrere riga per riga e come vado attraverso ogni riga, il valore di ifor
in ogni riga può cambiare in base ad alcune condizioni e ho bisogno di cercare un altro dataframe.
Ora, come si aggiorna mentre si itera. Ho provato alcune cose che nessuno di loro ha funzionato.
for i, row in df.iterrows():
if <something>:
row['ifor'] = x
else:
row['ifor'] = y
df.ix[i]['ifor'] = x
Nessuno di questi approcci sembra funzionare. Non vedo i valori aggiornati nel dataframe.
Penso che si desidera 'df.ix [i, 'IFOR']'. 'df.ix [i] ['ifor']' è problematico perché è indicizzato a catena (che non è affidabile nei panda). –
Potete fornire l'altro frame e il ''. Se il tuo codice può essere vettorializzato dipenderà da queste cose. In generale, evita 'iterrows'. Nel tuo caso, dovresti * sicuramente * evitarlo poiché ogni riga sarà un 'oggetto' dtype 'Serie'. –
Sarebbe meglio creare una maschera booleana per la condizione, aggiornare tutte quelle righe e quindi impostare il resto sull'altro valore – EdChum