函数从Python中的第一行计算值

函数从Python中的第一行计算值,python,pandas,numpy,Python,Pandas,Numpy,pandas中是否有任何函数可以模拟excel公式,如“=sum($A$1:A10)”(用于第10行),即公式应从第1行获取滚动数据 Pandas滚动函数需要一个整数值作为窗口参数。Pandas中的=SUM($a$1:A1)的等价物是.expansing().SUM()(需要Pandas 0.18.0): 您还可以通过“应用”应用通用函数: ser.expanding().apply(lambda x: np.percentile(x, 90)) Out: 0 1.0 1 1.9

pandas中是否有任何函数可以模拟excel公式,如“=sum($A$1:A10)”(用于第10行),即公式应从第1行获取滚动数据


Pandas滚动函数需要一个整数值作为窗口参数。

Pandas中的
=SUM($a$1:A1)
的等价物是
.expansing().SUM()
(需要Pandas 0.18.0):

您还可以通过“应用”应用通用函数:

ser.expanding().apply(lambda x: np.percentile(x, 90))
Out: 
0    1.0
1    1.9
2    2.8
3    3.7
dtype: float64
或直接使用分位数:

ser.expanding().quantile(0.9)
Out[15]: 
0    1.0
1    1.0
2    2.0
3    3.0
dtype: float64
请注意,第90个百分位数等于0.9个分位数。但是,Series.quantile和Series.expansing.quantile返回的结果可能不同


np.percentile返回与Excel的percentile.INC相同的结果。对于percentile.EXC,我之前编写了一个小函数。

pandas中的
=SUM($a$1:A1)
等价物是
.expansing().SUM()
(需要pandas 0.18.0):

您还可以通过“应用”应用通用函数:

ser.expanding().apply(lambda x: np.percentile(x, 90))
Out: 
0    1.0
1    1.9
2    2.8
3    3.7
dtype: float64
或直接使用分位数:

ser.expanding().quantile(0.9)
Out[15]: 
0    1.0
1    1.0
2    2.0
3    3.0
dtype: float64
请注意,第90个百分位数等于0.9个分位数。但是,Series.quantile和Series.expansing.quantile返回的结果可能不同


np.percentile返回与Excel的percentile.INC相同的结果。对于percentile.EXC,我之前编写了一个小函数。

请检查滚动窗口的30参数,而不是滚动窗口的30参数,是否有任何方法使其动态(行号)。滚动(30)。应用(func=np.percentile,args=(0.90,)。如excel$A$1:当前单元格公式?我不确定,但它看起来需要循环。请检查滚动窗口的30参数,而不是滚动窗口的30参数,是否有任何方法使其动态(行数)。滚动(30)。应用(func=np.percentile,args=(0.90,))。如excel$A$1:当前单元格公式?我不确定,但它看起来像需要循环。谢谢..这看起来正是需要的,但百分位值与excel值不匹配(可以看出它们甚至在视觉上都不正确)。百分位(0.9)应该是1 1.93 2.86 3。79@ChandanKumar对于第90个百分位数,您需要传递90作为参数。但是,Series.expansing.quantile似乎有问题,因此最好现在就使用numpy版本。谢谢。这看起来正是所需的,但百分位数值与excel值不匹配(可以看出它们甚至在视觉上都不正确)。百分位(0.9)应为1.93 2.86 3。79@ChandanKumar对于第90个百分位数,您需要通过90作为参数。但是,Series.expansing.quantile似乎有问题,所以现在最好使用numpy版本。