python / pandas Вытащить месяц только один раз из индекса данных - PullRequest
0 голосов
/ 06 июля 2018

В настоящее время у меня есть фрейм данных, который выглядит следующим образом:

df = 

            Portfolio Value  Reference Values
Date                                         
2017-12-08     1.116178e+06      1.131236e+06
2017-12-15     1.117073e+06      1.139133e+06
2017-12-22     1.132547e+06      1.148579e+06
2017-12-29     1.138442e+06      1.147916e+06
2018-01-05     1.164225e+06      1.176083e+06
2018-01-12     1.187353e+06      1.196030e+06
2018-01-19     1.189111e+06      1.201825e+06
2018-01-26     1.206821e+06      1.225157e+06
2018-02-02     1.158117e+06      1.176250e+06
2018-02-09     1.100856e+06      1.115643e+06
2018-02-16     1.147286e+06      1.161896e+06
2018-02-23     1.150850e+06      1.169671e+06
2018-03-02     1.131918e+06      1.142618e+06
2018-03-09     1.176213e+06      1.183319e+06
2018-03-16     1.169246e+06      1.168313e+06
2018-03-23     1.115895e+06      1.107276e+06
2018-03-30     1.142702e+06      1.129814e+06
2018-04-06     1.131622e+06      1.115807e+06
2018-04-13     1.155948e+06      1.140644e+06
2018-04-20     1.167440e+06      1.151066e+06
2018-04-27     1.161850e+06      1.147982e+06
2018-05-04     1.156383e+06      1.146540e+06
2018-05-11     1.188791e+06      1.175786e+06

Я хотел бы получить список месяцев из фрейма данных с еженедельными данными в нем, но не повторять тот же месяц.Например, сейчас, в начале информационного кадра, месяц 12 отображается четыре раза, однако в моем списке я хотел бы, чтобы он отображался только один раз.Это утверждение действительно для всех месяцев.

Я бы хотел, чтобы конечный результат выглядел примерно так:

monthList = [12, 1, 2, 3, 4, 5] 

мои фактические кадры данных имели бы много лет с разными начальными и конечными месяцами, поэтомуЯ надеялся, что конечный результат будет выглядеть примерно так:

monthList = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5] #etc...

monthList должен начинаться в месяце в кадре данных и заканчиваться в том месяце, в котором заканчивается датафрейм.

1 Ответ

0 голосов
/ 06 июля 2018

Использование unique

df.index.month.unique().tolist()
Out[99]: [12, 1, 2, 3, 4, 5]

на несколько лет

pd.Series(df.index.month).groupby(df.index.year).unique()
Out[105]: 
Date
2017               [12]
2018    [1, 2, 3, 4, 5]
Name: Date, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...