Tengo un marco de datos de pandas que se ve así (es bastante grande)
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
ahora me gustaría iterar fila por fila y a medida que avanzo por cada fila, el valor de ifor
en cada fila puede cambiar dependiendo de algunas condiciones y necesito buscar otro marco de datos.
Ahora, ¿cómo actualizo esto a medida que itero? Intenté algunas cosas, ninguna de ellas funcionó.
for i, row in df.iterrows():
if <something>:
row['ifor'] = x
else:
row['ifor'] = y
df.ix[i]['ifor'] = x
Ninguno de estos enfoques parece funcionar. No veo los valores actualizados en el marco de datos.
<something>
. Si su código puede ser vectorizado dependerá de esas cosas. En general, evite iterrows
. En su caso, definitivamente debe evitarlo ya que cada fila será un tipo de object
letra Series
.
df.ix[i,'ifor']
.df.ix[i]['ifor']
es problemático porque es una indexación encadenada (que no es confiable en pandas).