重采样后获取熊猫第n个条目(在“ DatetimeIndexResampler”对象上)

时间:2018-11-16 15:22:09

标签: python pandas time-series pandas-groupby resampling

我有这样一个数据框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

其中

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 :(得分:1)

分组,然后使用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