У меня есть dataframe с датой и значениями,скорость до панды dataframe итерации
Date Price
Jun 30 95.60
Jun 29 94.40
Jun 28 93.59
Jun 27 92.04
Jun 24 93.40
Jun 23 96.10
Jun 22 95.55
Jun 21 95.91
Jun 20 95.10
Jun 17 95.33
Jun 16 97.55
Jun 15 97.14
Jun 14 97.46
Jun 13 97.34
Jun 10 98.83
Jun 9 99.65
Jun 8 98.94
Jun 7 99.03
Jun 6 98.63
Jun 3 97.92
Jun 2 97.72
Там есть функция, которая перебирать dateframe,
indic_up = [False, False,False, False]
i = 4
while i+4 <= df.index[-1]:
if (df.get_value(i, 'value') > df.get_value(i-1, 'value')) or
(df.get_value(i, 'value') > df.get_value(i-2, 'value')) or
(df.get_value(i, 'value') > df.get_value(i-3, 'value')) or
(df.get_value(i, 'value') > df.get_value(i-4, 'value')):indic_up.append(True)
else:indic_up.append(False)
i = i+1
Логика этой функции, если value
сегодня больше, чем вчера, позавчера или раньше, то это true
или false
. Эти функции, как представляется, очень медленно для меня, так как я могу переписать эту функцию, как эти
for index, row in df.iterrows():
row['a'], index
или
for idx in df.index:
df.ix[idx, 'a'], idx
или может я достичь более быстрой путем преобразования dataframe в Numpy массив?