Совокупный состав Python Pandas не равен сумме составных активов - PullRequest
0 голосов
/ 12 июля 2019

Наличие странной проблемы, которая пересекает грань между статистикой / математикой и программированием (я не уверен, в чем заключается основная проблема).

У меня есть данные о доходах по месяцам.Вот небольшой снимок фрейма данных:

Strategy       Theme                   Idea    month           PnL
   Event    Catalyst  European Oil Services  2019-05 -1.412264e-10
   Event    Catalyst  European Oil Services  2019-06 -2.688968e-08
   Event    Catalyst                   None  2019-06  1.546945e-08
   Event         M&A                   None  2019-06  2.128868e-08
Fundamental  5G Rollout               Intelsat  2019-01  1.375019e-02

Теперь, когда я группирую по месяцам и суммам, затем объединяю результат, я получаю ожидаемый ответ и то, что я могу воспроизвести в Excel:

x = df.groupby(['month']).sum()
total_pnl = x.compound()['PnL']

Получает мой ожидаемый результат в 4,16%.Все идет нормально.Однако, взяв один и тот же кадр данных и составив отдельные идеи, а затем суммируя, можно получить другой ответ: 5,89%

dfx = df.pivot_table(index='month',columns=['Strategy','Theme','Idea'],values='PnL')
dfx = dfx.fillna(0.0)
dfx = dfx.compound()
dfx = dfx.reset_index(drop=False)
dfx.columns= ['Strategy','Theme','Idea','PnL']

total_pnl = sum(dfx['PnL'])

Сначала я подумал, что это просто математически неприемлемо для составных индивидуальных возвратовзатем суммируйте их, но простой пример, который я сделал в excel, доказал мне, что оба метода должны быть одинаковыми.Затем я проверил в Excel, будет ли проблема с 0 возвратами в любой месяц - это не так.

Теперь я пару часов ломал голову, пытаясь понять, почему эти цифры нене совпадают, когда я делаю это в Python, хотя мой простой пример Excel показывает, что они должны.

Можете ли вы вспомнить какие-либо предостережения, которые я не принимаю во внимание, которые могут быть причиной этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...