我在与 groupby 结合使用 resample 函数时遇到了问题。我正在做的操作目前在 5000 行的数据样本上需要 8 秒以上的时间,这对于我的要求是完全不合理的。
Pastebin 以数据为字典:https : //pastebin.com/RPNdhXsy
我有一个季度间隔的日期数据,我想按列分组,然后每月重新采样组内的日期。
Input:
isin report_date val
SE001 2018-12-31 1
SE001 2018-09-30 2
SE001 2018-06-31 3
US001 2018-10-31 4
US001 2018-07-31 5
Output:
isin report_date val
SE001 2018-12-31 1
2018-11-30 NaN
2018-10-31 NaN
2018-09-30 2
2018-08-31 NaN
2018-07-31 NaN
2018-06-30 3
US001 2018-10-30 4
2018-09-31 NaN
2018-08-31 NaN
2018-07-31 5
Run Code Online (Sandbox Code Playgroud)
我曾经有过这样的操作:
df.groupby('isin').resample('M', on="report_date").first()[::-1]
Run Code Online (Sandbox Code Playgroud)
由于它的asfreq()
性能似乎比使用on=
in略好resample
,因此我目前执行以下操作。不过还是很慢。我反转,因为resample
似乎非可选地对日期进行降序排序。
df.set_index('report_date').groupby('isin').resample('M').asfreq()[::-1]
Run Code Online (Sandbox Code Playgroud)
如上所述,5000 …