2014-10-13 3 views
0

Я думаю, что мне не хватает чего-то с моим пониманием группы в пандах. У меня есть индекс Dataframe с индексом «Дата», а в кадре есть столбец «Год», где 2014-10-10 - 2014 и т. Д.Статистические сводные данные с временными рядами

Я хочу сопоставить данные Года 1 с данными Года 2 , и так далее. Что я должен делать со списком значений индекса?

Мой вход:

Date Adj Close Year 
2013-Dec-31 0.16 2013 
2013-Dec-30 0.13 2013 
2013-Dec-27 0.11 2013 
2012-Dec-31 0.1  2012 
2012-Dec-28 0.1  2012 
2012-Dec-27 0.1  2012 
2012-Dec-26 0.1  2012 

и сделать корреляцию они должны быть рядом друг с боковыми рамами?

Date Adj Close Year Date Adj Close Year 
2012-Dec-31 0.1  2012 2013-Dec-31 0.16 2013 
2012-Dec-28 0.1  2012 2013-Dec-30 0.13 2013 
2012-Dec-27 0.1  2012 2013-Dec-27 0.11 2013 

Должен ли я создать новый блок данных для каждого года и объединить их?

+0

Я не понимаю, чего вы добиваетесь. «сопоставить данные года 1 с данными года 2»? Кроме того, просьба более подробно указать, что вы на самом деле выполняете - код, который создает ваш первый вывод. – FooBar

+0

На самом деле это всего лишь вторая половина моего поста, и это именно то, что я только что пробовал несколько способов и не могу понять. Я получал все годы в списке фреймов, но когда я делаю присоединение, данные не добавляются, конечно, потому что, в то время как день и месяц могут выстраиваться в линию, этого не происходит. – mobone

ответ

0

Слияние не производится. Все ваши данные зависят от даты, просто «складывайте» данные позади друг друга, а затем убедитесь, что вы группируете по месяцам, дням, чтобы получить годовую корреляцию (за тот же день)

Просто убедитесь, что ваш индекс правильный временной ряд, а затем панды сделают для вас все волшебство. То есть, посмотрите на this и this в руководстве. Любая функция, использующая индекс для взвешивания по отношению к/вычислению расстояний, автоматически сделает это правильно для вас, если ваш индекс является временным рядом.

Здесь я сюжет автокорреляции для вас, опять-таки из documentation

df = pd.read_clipboard() 
df.index = pd.DatetimeIndex(df.Date) 
from pandas.tools.plotting import autocorrelation_plot 
autocorrelation_plot(df['Adj') 

и выход

Output

Если вы хотите применить дополнительную фильтрацию, с этим индексом, вы можете даже выбрать конкретный год, используя df['2013'].

+0

Спасибо за это, но я не совсем понимаю, на что я смотрю. Я сделал это со всем набором данных: http://s4.postimg.org/9572dbjp9/output.png , а оригинальные данные: http://s28.postimg.org/ywbow9y31/output2.png Я знаю, что у 2014 есть R ~ .66, но не видите, как это видно из графика автокорреляции? – mobone

+0

Возможно, вам нужно задать новый вопрос и четко указать, как выглядят ваши данные, и каков ваш ожидаемый результат. Мне очень сложно угадать, что вы хотите сделать, учитывая то, что вы здесь написали, и, учитывая, что никто другой не дал вашему вопросу выстрела, я не единственный. – FooBar

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