Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不包括行,以便在大熊猫中计算滚动平均值_Python_Pandas_Dataframe - Fatal编程技术网

Python 不包括行,以便在大熊猫中计算滚动平均值

Python 不包括行,以便在大熊猫中计算滚动平均值,python,pandas,dataframe,Python,Pandas,Dataframe,我正在寻找解决这个问题的方法,我有一个数据帧 df A RM 0 384 NaN 1 376 380.0 2 399 387.5 3 333 366.0 4 393 363.0 5 323 358.0 6 510 416.5 7 426 468.0 8 352 389.0 我想看看df['A']>[Previous]RM值中的值是否应该是新列状态的0upd

我正在寻找解决这个问题的方法,我有一个数据帧

df
         A     RM
    0  384    NaN
    1  376  380.0
    2  399  387.5
    3  333  366.0
    4  393  363.0
    5  323  358.0
    6  510  416.5
    7  426  468.0
    8  352  389.0 
我想看看df['A']>[Previous]RM值中的值是否应该是新列状态的
0
updated else

     A     RM  Status
0  384    NaN       0
1  376  380.0       1
2  399  387.5       0
3  333  366.0       1
4  393  363.0       0
5  323  358.0       1
6  510  416.5       0
7  426  468.0       0
8  352  389.0       1
我想我需要将
Shift
与numpy
where
一起使用,但是我没有得到想要的结果

import pandas as pd
import numpy as np
df=pd.DataFrame([384,376,399,333,393,323,510,426,352], columns=['A'])


df['RM']=df['A'].rolling(window=2,center=False).mean()

df['Status'] =  np.where((df.A > df.RM.shift(1).rolling(window=2,center=False).mean()) , 0, 1) 
最后,应用滚动平均法

df.AverageMean=df[df['Status'] == 1]['A'].rolling(window=2,center=False).mean()

我想当你与na比较时,它总是1

df['Status'] = (df.A < df.RM.fillna(df.A.max()+1).shift(1)).astype(int)


    A   RM  Status
0   384 NaN     0
1   376 380.0   1
2   399 387.5   0
3   333 366.0   1
4   393 363.0   0
5   323 358.0   1
6   510 416.5   0
7   426 468.0   0
8   352 389.0   1
df['Status']=(df.A
简单的
shift

df['Status']=(df.A<=df.RM.fillna(9999).shift()).astype(int)
df
Out[347]: 
     A     RM  Status
0  384    NaN       0
1  376  380.0       1
2  399  387.5       0
3  333  366.0       1
4  393  363.0       0
5  323  358.0       1
6  510  416.5       0
7  426  468.0       0
8  352  389.0       1

df['Status']=(df.A8 352 389.0这应该是1吗?对!它的交叉条件,即352>468.0那么1就太简单了。+1几乎50千分,离传奇还有几天。很好,文!@ScottBoston谢谢你,我甚至没有意识到我接近传奇徽章