# Incorporate delisting return
i = 0
for tc, col in dlret.iloc[:,0:50].iteritems():
idx = col.index[col.notnull()]
if len(idx) != 0:
tr = idx[0]
val = col.ix[tr]
#ret.ix[tr, tc] = val #this line is too slow
i += 1
if math.floor(i/10) > math.floor((i-1)/10):
print i
dlret DataFrame имеет примерно 600 строк и 25000+ столбцов. Я перебираю столбцы, чтобы искать первое значение nonnull (возврат исключений), а затем найдите соответствующее местоположение в ret DataFrame, чтобы установить значение, равное значению возвращаемого делистинга. Тем не менее, код работает очень медленно, используя ix для индексации соответствующего местоположения. Любое предложение о том, как эффективно достичь этого?Как эффективно изменить значения в кадрах данных
Любое сродство к рамке данных панд. Если нет, то посмотрите на массивы numpy. Они быстрые – Versatile
Я думаю, что простая функция 'comb' или' update' может решить вашу проблему здесь. Не могли бы вы загрузить образец вашего набора данных через Dropbox sharelink или google driver? Если данные являются собственностью, замените их на случайные числа. –