小编Jok*_*kab的帖子

Pandas groupby 重新采样性能不佳

我的问题

我在与 groupby 结合使用 resample 函数时遇到了问题。我正在做的操作目前在 5000 行的数据样本上需要 8 秒以上的时间,这对于我的要求是完全不合理的。

样本数据(500 行)

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 …

python pandas pandas-groupby

6
推荐指数
1
解决办法
817
查看次数

标签 统计

pandas ×1

pandas-groupby ×1

python ×1