나는 이와 같은 팬더 데이터 프레임을 가지고 있습니다 (꽤 큰 것)
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
이제 행 단위로 반복하고 싶습니다. 각 행을 통과 할 때 각 행의 값은 ifor
일부 조건에 따라 변경 될 수 있으며 다른 데이터 프레임을 찾아야합니다.
이제 반복하면서 이것을 어떻게 업데이트합니까? 그들 중 누구도 효과가 없었던 몇 가지를 시도했습니다.
for i, row in df.iterrows():
if <something>:
row['ifor'] = x
else:
row['ifor'] = y
df.ix[i]['ifor'] = x
이러한 접근 방식 중 어느 것도 효과가없는 것 같습니다. 데이터 프레임에서 업데이트 된 값이 표시되지 않습니다.
<something>
. 코드를 벡터화 할 수 있는지 여부는 그에 따라 다릅니다. 일반적으로 피하십시오 iterrows
. 귀하의 경우에는 각 행이 dtype 이기 때문에 반드시 피해야합니다 . object
Series
df.ix[i,'ifor']
.df.ix[i]['ifor']
체인 인덱싱이기 때문에 문제가 있습니다 (팬더에서는 신뢰할 수 없음).