У мене є кадр даних панди, який виглядає приблизно так (це досить великий)
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
. У вашому випадку вам обов'язково слід уникати цього, оскільки кожен ряд буде object
типом Series
.
df.ix[i,'ifor']
.df.ix[i]['ifor']
проблематично, оскільки це ланцюгова індексація (що не є надійним у пандах).