簡體   English   中英

熊貓:一次計算n個滾動行的所有列的平均值

[英]Pandas: Calculate the average over all of the columns for n rolling rows at a time

我正在嘗試做的是...我有時間序列,我想計算多列中n行的滾動平均值。 我最初要做的是制作另一列,每列包含平均值,然后對n行進行標准滾動平均值計算。 但是,當我在某些列中沒有值時,就無法進行計算。

例:

Col1 | Col2 | Col3 | Avg
10   | 20   |      | 15
     | 10   |      | 10
10   | 15   |  20  | 15

平均滾動平均值: 13.33

應該是: 14.16

這是為我工作的示例,其中包含所有數字...

Col1 | Col2 | Col3 | Avg 
10   | 20   |   15 | 15
10   | 10   |   10 | 10
10   | 15   |   20 | 15

平均滾動平均值: 13.33

應該是: 13.33

我可以做的是手動循環...我還可以添加第二列,該列將在每行中包含元素數量。

但是有更好的方法嗎?

np.nanmean將對多維數組中的所有內容np.nanmean平均。

np.nanmean(df.values)

14.166666666666666

滾動3個周期使用此方法,您可以執行此操作

pd.Series({df.index[i]: np.nanmean(df.iloc[i-2:i+1].values) for i in range(2, len(df))})

2    14.166667
dtype: float64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM