Python 熊猫在移动窗口中获得最小总数

Python 熊猫在移动窗口中获得最小总数,python,pandas,Python,Pandas,我有如下数据帧: df=pd.Series(index=pd.date_range(start='1/1/2017', end='1/10/2017', freq='D'), data=[5,5,2,1,3,4,5,6,7,8]) df Out[216]: 2017-01-01 5 2017-01-02 5 2017-01-03 2 2017-01-04 1 2017-01-05 3 2017-01-06 4 2017-01-07

我有如下数据帧:

df=pd.Series(index=pd.date_range(start='1/1/2017', end='1/10/2017', freq='D'),
             data=[5,5,2,1,3,4,5,6,7,8])

df
Out[216]: 
2017-01-01    5
2017-01-02    5
2017-01-03    2
2017-01-04    1
2017-01-05    3
2017-01-06    4
2017-01-07    5
2017-01-08    6
2017-01-09    7
2017-01-10    8
Freq: D, dtype: int64
我想确定具有最小总值的3天期间的开始日期。因此,在本例中,2017-01-03至2017-01-05在这3天内的最小值为6

有没有一种方法可以做到这一点,而不必通过每个3天窗口循环

结果将是:

2017-01-03    6

如果有多个窗口具有相同的最小和,则结果可能会有每个窗口的记录

IIUC
rolling

df=pd.Series(index=pd.date_range(start='1/1/2017', end='1/10/2017', freq='D'),
             data=[5,5,2,1,3,4,5,6,7,8])
df=df.to_frame()
df['New']=df.rolling(3).sum().shift(-2).values
df.loc[df.New==df.New.min(),:].drop(0,1)

Out[685]: 
            New
2017-01-03  6.0

这太棒了。为了澄清我是否想将窗口大小更改为4(作为一个示例),它应该是df['New']=df.rolling(4.sum().shift(-3.values)。是吗?@AJG519是的,你明白了