簡體   English   中英

如何在熊貓中滾動非重疊窗口

[英]How to rolling non-overlapping window in pandas

我的數據框看起來像:

       c1   
    0  10  
    1  11  
    2  12
    3  13
    4  14
    5  15
    6  16
    7  17

我想找到每 3 行的最小值。 看起來像:

       c1  min 
    0  10  10
    1  11  10
    2  12  10
    3  13  13
    4  14  13
    5  15  13
    6  16  16
    7  17  16

並且行數可能不能被 3 整除。我無法通過滾動功能實現它。

如果有默認索引值,則使用整數除以3並使用min傳遞給GroupBy.transform

df['min'] = df['c1'].groupby(df.index // 3).transform('min')

或者,如果任何index生成幫助程序np.arange

df['min'] = df['c1'].groupby(np.arange(len(df)) // 3).transform('min')

print (df)
   c1  min
0  10   10
1  11   10
2  12   10
3  13   13
4  14   13
5  15   13
6  16   16
7  17   16

你也可以這樣做:

>>> df['min'] = df['c1'][::3]
>>> df.ffill().astype(int)

   c1  min
0  10   10
1  11   10
2  12   10
3  13   13
4  14   13
5  15   13
6  16   16
7  17   16

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM