【问题标题】:How to get new pandas dataframe with max value of k consecutive rows?如何获得具有 k 连续行最大值的新熊猫数据框?
【发布时间】:2020-12-15 14:45:33
【问题描述】:

我有这个熊猫数据框:

ts = pd.Series([2372, 4356, 3034, 1502, 676, 4187, 2634, 1002])

我想得到的是一个数据框,它存在该列的四个连续行的最大值并保留第 0、4、8 行等的索引。

在这种情况下,这意味着一个新的数据框应该如下所示:

0 4356 

4 4187

我该怎么做?

【问题讨论】:

    标签: python python-3.x pandas dataframe series


    【解决方案1】:

    numpy.arangeGroupby.agg 一起使用:

    In [899]: df = ts.groupby(np.arange(len(ts))//4).agg(['idxmax','max'])
    
    In [900]: df
    Out[900]: 
       idxmax   max
    0       1  4356
    1       5  4187
    

    【讨论】:

    • ts.groupby(np.arange(len(ts))//4).agg(['idxmax','max']) 为您节省了一个 groupby :-)。
    • @QuangHoang 谢谢。编辑了我的答案。
    • 非常感谢! @MayankPorwal 和 Quang Hoang
    【解决方案2】:

    试试:

    ts.groupby((np.arange(len(ts))//4)*4).max()
    

    输出:

    0    4356
    4    4187
    dtype: int64
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 2018-07-30
      • 2021-06-16
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 2020-10-02
      相关资源
      最近更新 更多