Получить панды n-й записи после повторной выборки (для объекта DatetimeIndexResampler) - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть такой фрейм данных df:

            Data
Date    
2013-01-01  1
2013-01-01  3
2013-01-01  0
2013-02-01  4
2013-02-01  0

Это продолжается с другими последующими датами по месяцам и значениям.Я хочу получить n-й элемент для каждой группы месяца в отдельном подмножестве.

Я думал о повторной выборке с использованием месяца и получении элемента nth, как мы можем получить mean, min, max ...

n-й элемент находится в диапазоне от 0 до мин

, где

min_to_keep = int(df.resample('M').count().min()[0])

За исключением того, что метод pandas#nth для меня не существует, он предназначен для Group объекта, но не Resampler.

Требуемый результат похож на:

1  2013-01-01  1
   2013-02-01  4

2  2013-01-01  3
   2013-02-01  0

...

1 Ответ

0 голосов
/ 16 ноября 2018

Сгруппируйте и затем сформируйте отдельное DataFrames, используя .nth

import pandas as pd

gp = df.groupby(pd.Grouper(freq='M'))
l = [gp.nth(i) for i in range(gp.size().max())]

# If need a DataFrame
pd.concat(l, keys=list(range(gp.size().max())))
              Data
  Date            
0 2013-01-31     1
  2013-02-28     4
1 2013-01-31     3
  2013-02-28     0
2 2013-01-31     0
...