代码之家  ›  专栏  ›  技术社区  ›  Curcuma_

重新采样后获取pandas第n个条目(在“datetimeindexresampler”对象上)

  •  1
  • Curcuma_  · 技术社区  · 7 年前

    我有这样一个数据帧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 回复  |  直到 7 年前
        1
  •  1
  •   ALollz    7 年前

    分组,然后组成单独的 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