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
与numpywhere
一起使用,但是我没有得到想要的结果
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谢谢你,我甚至没有意识到我接近传奇徽章