Так ив некоторых временных рядов, данные о которых я хочу, чтобы вычислить ежедневные возвращения/прироста, где ежедневный прирост = value_at_time (T)/value_at_time (Т-1)вычисления ежедневно возврата/прирост на dataframe
import pandas as pd
df=pd.DataFrame([1,2,3,7]) #Sample data frame
df[1:]
out:
0
1 2
2 3
3 7
df[:-1]
out:
0
0 1
1 2
2 3
######### Method 1
df[1:]/df[:-1]
out:
0
0 NaN
1 1
2 1
3 NaN
######### Method 2
df[1:]/df[:-1].values
out:
0
1 2.000000
2 1.500000
3 2.333333
######### Method 3
df[1:].values/df[:-1]
out:
0
0 2
1 1
2 2
Мои вопросы в том, что
- Если DF [: - 1] и DF [1:] имеют только три значения (строки ломтики dataframe), то почему оленья кожа method_1 работать?
- Почему методы 2 & 3, которые почти аналогичны, дают разные результаты?
- Почему с помощью .values в Method_2 делает его работу
спасибо EdChum, но другой вопрос в том, что Method_3 хотя точно так же, как Method_2 оленья кожа дают тот же результат. Пока Method_2 дает выход float, Method_3 завершает их, почему это так? Что происходит с изменением порядка. – shalini
Я получаю float, но моя версия np - «1.10.4», а версия pandas - «0.18.0» и python. 3.4. – EdChum
pd .__ version__ 0.17.1, numpy .__ version__ '1.10.1'. Я думаю, может быть, ошибка pandas 17.1 – shalini