2015-10-19 108 views
1

我有一個名爲'coverage'的列的熊貓數據框。對於一系列特定的索引值,我想獲得前100行的平均「覆蓋率」值。例如,對於索引位置1001,我希望行901-1000的平均「覆蓋率」。我感興趣的索引值在一個單獨的列表中。取一個熊貓數據幀中一系列行的值的平均值

我不知道如何告訴大熊貓查看一系列相對於給定索引的行。我不認爲我可以使用GroupBy,因爲會有一些行重疊(例如,假設我感興趣的索引值列表包括1001和1050)。

如果任何人都可以指出我正確的方向,我會非常感激!

+0

這聽起來像所有你想要做的是遍歷列表,然後切片你的主DF使用該列表範圍值? – EdChum

+0

是EdChum,聽起來像我想做的事。 Guillaume的回答給了我一個找到方法的好工具。現在我添加一個新的列,用於標記我感興趣的索引的行,然後有條件地應用rolling_mean函數。我如何使用索引列表訪問平均DF的方法很笨重,但它完成了工作。 – Scarlet

回答

1

pandas.rolling_mean似乎是一個很好的候選人您的問題

例如:

In [9]: pandas.rolling_mean(pandas.Series(range(10)), window=2) 
Out[9]: 
0 NaN 
1 0.5 
2 1.5 
3 2.5 
4 3.5 
5 4.5 
6 5.5 
7 6.5 
8 7.5 
9 8.5 
dtype: float64