私はこのようなパンダデータフレームを持っています(かなり大きなものです)
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']
連鎖インデックスであるため、問題があります(パンダでは信頼できません)。