Mam ramkę danych pand, która wygląda tak (jest to dość duża)
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
teraz chciałbym iterować wiersz po wierszu, a gdy przechodzę przez każdy wiersz, wartość ifor
w każdym wierszu może się zmieniać w zależności od niektórych warunków i muszę wyszukać inną ramkę danych.
Jak mogę to zaktualizować podczas iteracji? Próbowałem kilku rzeczy, ale żadna z nich nie działała.
for i, row in df.iterrows():
if <something>:
row['ifor'] = x
else:
row['ifor'] = y
df.ix[i]['ifor'] = x
Żadne z tych podejść nie działa. Nie widzę wartości zaktualizowanych w ramce danych.
<something>
. To, czy kod będzie wektoryzowany, będzie zależeć od tych rzeczy. Ogólnie unikaj iterrows
. W twoim przypadku zdecydowanie powinieneś tego unikać, ponieważ każdy wiersz będzie object
typem Series
.
df.ix[i,'ifor']
.df.ix[i]['ifor']
jest problematyczne, ponieważ jest indeksowane łańcuchowo (co nie jest niezawodne w pandach).