2016-03-29 3 views
1

У меня есть сценарий, который продолжает испортиться, и я не уверен, что такое источник. Кажется, это работает иногда, а не другие. Вот пример.Функция pandas pct_change() возвращает неправильное значение

In [29]: pricesEquities=financialMarketPrices['equities'].dropna(axis[0,1],how='all')) 

In [30]: pricesEquities.head() 
Out[30]: 
       aud  cad  chf  eur  gbp  inr  jpy  sek \ 
date                    
2003-01-01 3007.1 6614.54 4630.8 2386.41 3940.4 1100.15 843.29 493.20 
2003-01-02 3027.6 6740.05 4630.8 2522.24 4009.5 1093.05 843.29 514.79 
2003-01-03 3055.5 6772.66 4899.5 2502.19 4004.9 1089.60 843.29 519.75 
2003-01-06 3075.4 6837.27 4916.2 2529.86 4001.4 1084.35 860.07 519.75 
2003-01-07 3074.5 6802.78 4887.0 2504.91 3957.4 1081.80 853.93 518.66 

       usd 
date     
2003-01-01 879.82 
2003-01-02 909.03 
2003-01-03 908.59 
2003-01-06 929.01 
2003-01-07 922.93 

In [31]: returnsEquities = pricesEquities.pct_change().iloc[1:] 

In [32]: returnsEquities.head() 
Out [32]: aud  cad chf  eur gbp  inr jpy  sek usd 
date                 
2003-01-02 -1 414.00 NaN 189.23 NaN 145.11 NaN 210.13 NaN 
2003-01-03 NaN  NaN NaN  NaN 0  NaN NaN 217.26 NaN 
2003-01-06 NaN  NaN NaN  NaN 0  NaN 0  NaN 65.33 
2003-01-07 NaN 436.00 NaN 191.79 0 146.50 0  NaN 60.63 
2003-01-08 NaN 452.67 NaN 188.93 0 147.43 0 214.14 59.13 

Это очень странно, и я честно понятия не имею, что может быть источником ошибки. Функция процента изменения, кажется, является ее источником, и она работает иногда, а не другие, казалось бы, случайным образом. Кто-нибудь еще занимался чем-то подобным раньше? Есть что-нибудь под капотом или нестабильно относительно моего кода? Это также запутывается в другом месте кода, но это самый простой из расчетов доходности, и он все еще запутывается. Кто-нибудь знает, что происходит?

+0

Странно, я думаю, вы можете попробовать сначала установить пакет pandas. – cncggvg

+0

Функция .diff() также работает неправильно. Попытайтесь проверить, работает ли это. – jjvandermade

+0

обновление pandas did not work:/понятия не имею. что-то с самим кодом/скриптом, так как на компьютерах моих коллег тоже возникают ошибки. Неисправности кажутся случайными – jjvandermade

ответ

0

проблема решена: мы использовали континуум anaconda, и мы считаем, что установка была неправильной. мы переустановили, и теперь все работает.

1

Я подтверждаю проблему. У меня возникли проблемы с pct_change, увидел это и проверил мою версию numexpr и нашел, что это 2.4.4.

Справедливости ради разработчики pandas и numexpr, я думаю, что я, возможно, попытался обновить pandas через pip, а не через conda, и, возможно, это вызвало проблемы.

Чтобы устранить эту проблему, я думаю, сделал следующее на окнах:

/path/to/Anaconda/Scripts/conda.exe update conda 
/path/to/Anaconda/Scripts/conda.exe update anaconda 

После этого все казалось правильно работать.

Смежные вопросы