簡體   English   中英

基於不同列的可變窗口的熊貓滾動平均值

[英]Pandas rolling mean with variable window based on an different column

我想在一個窗口上執行滾動平均值,該窗口根據我的 DataFrame 中列的值而變化。 誰能幫我? 這是一個起點:

import pandas as pd
import numpy as np

rng = np.random.default_rng()
df = pd.DataFrame(rng.integers(0, 100, size=(100, 2)), columns=list('AB'))
df.loc[:,'B']=df['B']//10

現在我想通過基於 B 列的窗口獲得df.A系列的滾動平均值。例如,如果df.B[0]值 3 my_series[0]=df.A.rolling(3).mean()[0]等等my_series[1]等等...

你能幫助我嗎? 我很感激你的時間。

一種選擇是循環遍歷數據框,並為每一行分配一個等於rolling_mean 的新列。

df['rolling_mean'] = np.nan
for ind in range(len(df)):
    df.loc[df.index[ind], 'rolling_mean'] = df.A.rolling(df.loc[df.index[ind], 'B']).mean()[ind]

暫無
暫無

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

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