基于此主题:Pandas Subset of a Time Series Without Resampling
目标是在一个月内返回最新日期(带有值),并返回该值。
示例代码:
Date CumReturn
3/31/2017 1
4/3/2017 .99
5/31/2017 1.022
4/4/2017 100
4/28/2017 1.012
5/1/2017 1.011
6/30/2017 1.033
import pandas as pd
df = pd.read_clipboard(parse_dates = ['Date'])
df.set_index('Date')
df
我认为这样可行:
df.groupby(pd.Grouper(freq = 'M')).max()
但它返回与最高值(CumReturn
)对应的日期,而不是索引中的最大日期。
df.groupby(pd.Grouper(freq = 'M')).last()
但是,输出显示选择了4月的最后一天,而不是df中的最后一天。 pandas从4月28日到4月30日分配值,并返回此df:
CumReturn
Date
2017-03-31 1.000
2017-04-30 1.012
2017-05-31 1.022
2017-06-30 1.033
导致这种行为的原因是什么?我假设熊猫只是在每个月选择最新的日期,但这似乎很奇怪,因为原始数据中没有这些日期。