用于计算Python Pandas中第一行的值的函数

时间:2016-09-21 11:55:00

标签: python pandas numpy

pandas中是否有任何函数来模拟excel公式,如'= sum($ A $ 1:A10'(第10行),即公式应该从第1行获取滚动数据。

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

1 个答案:

答案 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