pandas中是否有任何函数来模拟excel公式,如'= sum($ A $ 1:A10'(第10行),即公式应该从第1行获取滚动数据。
Pandas滚动功能需要一个整数值作为窗口参数。
答案 0 :(得分:2)
pandas中的=SUM($A$1:A1)
相当于.expanding().sum()
(需要pandas 0.18.0):
ser = pd.Series([1, 2, 3, 4])
ser
Out[3]:
0 1
1 2
2 3
3 4
dtype: int64
ser.expanding().sum()
Out[4]:
0 1.0
1 3.0
2 6.0
3 10.0
您还可以通过apply:
应用通用功能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.expanding.quantile返回的结果可能不同a bug。
np.percentile返回与Excel的PERCENTILE.INC相同的结果。对于PERCENTILE.EXC,我之前写过一个小函数here。