第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

熊貓滾動均值與 GroupBy 和 Sort

熊貓滾動均值與 GroupBy 和 Sort

三國紛爭 2021-08-05 10:35:33
我有一個如下所示的 DataFrame:f_period f_year f_month subject month year value20140102 2014   1      a        1     2018 1020140109 2014   1      a        1     2018 1220140116 2014   1      a        1     2018 820140202 2014   2      a        1     2018 2020140209 2014   2      a        1     2018 1520140102 2014   1      b        1     2018 1020140109 2014   1      b        1     2018 1220140116 2014   1      b        1     2018 820140202 2014   2      b        1     2018 2020140209 2014   2      b        1     2018 15的f_period為SKU(列預測時的日期subject)制成。的month和year列是該預測被做了周期。例如,第一行表示 on 01/02/2018,該模型預測要在year of year 中設置10產(chǎn)品單位。a12018我正在嘗試通過subject, by monthfor 2創(chuàng)建滾動平均預測f_months。DataFrame 應如下所示:f_period f_year f_month subject month year value mnthly_avg rolling_2_avg20140102 2014   1      a        1     2018 10    10         1320140109 2014   1      a        1     2018 12    10         1320140116 2014   1      a        1     2018 8     10         1320140202 2014   2      a        1     2018 20    17.5       null20140209 2014   2      a        1     2018 15    17.5       null20140102 2014   1      b        1     2018 10    10         1320140109 2014   1      b        1     2018 12    10         1320140116 2014   1      b        1     2018 8     10         1320140202 2014   2      b        1     2018 20    17.5       null20140209 2014   2      b        1     2018 15    17.5       null我嘗試過的事情:我能夠mnthly_avg通過:data_df['monthly_avg'] = data_df.groupby(['f_month', 'f_year', 'year', 'month', 'period', 'subject']).\        value.transform('mean')這給了我意想不到的輸出。我不明白它是如何計算值的rolling_2_avg我如何GROUP BYsubject和month再排序f_month,然后取平均值未來兩月的平均水平?
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經(jīng)驗 獲得超5個贊

除非我誤解了它似乎比你所做的更簡單。那這個呢?


grp = pd.DataFrame(df.groupby(['subject', 'month', 'f_month'])['value'].sum())

grp['rolling'] = grp.rolling(window=2).mean()

grp

輸出:


                          value rolling

subject     month   f_month         

a              1    1       30  NaN

               2            35  32.5

b              1    1       30  32.5

               2            35  32.5


查看完整回答
反對 回復 2021-08-05
?
月關(guān)寶盒

TA貢獻1772條經(jīng)驗 獲得超5個贊

我對喬希的解決方案會有點小心。如果您想按主題分組,則不能使用這樣的滾動功能,因為它會跨主題滾動(即它最終會從主題 A 和 B 中取一個月的平均值,而不是給出您可能更喜歡的空值)。


另一種方法是拆分數(shù)據(jù)幀并單獨運行滾動(我注意到您希望在數(shù)據(jù)幀末尾獲得空值,而您可能希望在前后對數(shù)據(jù)幀進行排序):


for unique_subject in df['subject'].unique():

    df_subject = df[df['subject'] == unique_subject]

    df_subject['rolling'] = df_subject['value'].rolling(window=2).mean()

    print(df_subject) # just to print, you may wanna concatenate these


查看完整回答
反對 回復 2021-08-05
  • 2 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號