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