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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python pandas - 按缺少日期的組在滾動(dòng)窗口上有效地應(yīng)用函數(shù)

Python pandas - 按缺少日期的組在滾動(dòng)窗口上有效地應(yīng)用函數(shù)

青春有我 2022-09-06 16:41:27
注意:我已經(jīng)知道這個(gè)問(wèn)題的答案,我發(fā)布它只是因?yàn)槲以诙褩R绯錾险也坏秸_的答案,我花了驚人的時(shí)間來(lái)弄清楚它。話(huà)雖如此,請(qǐng)隨時(shí)建議其他選項(xiàng)。問(wèn)題我有一個(gè)帶有三列的pandas DataFrame,一個(gè)跟蹤日期,一個(gè)跟蹤相關(guān)觀察結(jié)果(即我的分組列),第三個(gè)變量存儲(chǔ)一些數(shù)值。對(duì)于我的數(shù)據(jù)幀中的每個(gè)組,我想計(jì)算日期列上的滾動(dòng)總和。警告:數(shù)據(jù)幀中缺少一些日期,我想將它們視為值為0的觀測(cè)值。我不想使用交叉聯(lián)接來(lái)添加所有日期??芍噩F(xiàn)示例讓我們有一個(gè)這樣的數(shù)據(jù)幀:df = pd.DataFrame({'id_col' : np.array([1,1,1,1,1,1,2,2,2,2,2,3,3,3]),                  'value_col' : np.random.randint(0,5,size=14),                  'dates' : pd.to_datetime(np.array([                  '2018-01-01',                  '2018-02-01',                  '2018-03-01',                  '2018-05-01',                  '2018-06-01',                  '2018-09-01',                  '2018-01-01',                  '2018-02-01',                  '2018-05-01',                  '2018-06-01',                  '2018-07-01',                  '2018-01-01',                  '2018-02-01',                  '2018-03-01'])                  )}                 )數(shù)據(jù)如下所示:    id_col  value_col   dates0   1   0   2018-01-011   1   1   2018-02-012   1   4   2018-03-013   1   0   2018-05-014   1   3   2018-06-015   1   3   2018-09-016   2   4   2018-01-017   2   3   2018-02-018   2   2   2018-05-019   2   0   2018-06-0110  2   2   2018-07-0111  3   4   2018-01-0112  3   2   2018-02-0113  3   3   2018-03-01我嘗試過(guò)的方法不起作用:選項(xiàng) 1:完全忽略缺失的日期df.groupby(['id_col']).rolling(2)['value_col'].sum().reset_index()選項(xiàng) 2:基于 pandas 滾動(dòng)文檔,使用 pandas 偏移參數(shù)替換窗口寬度(返回)。如果將日期列用作數(shù)據(jù)幀的索引,則此方法將起作用。不幸的是,我們不能在這里使用簡(jiǎn)單的索引,因?yàn)閬?lái)自id_col的2個(gè)不同的ID可以包含相同的日期。(我們可以創(chuàng)建 MultiIndex,但隨后得到相同的值錯(cuò)誤)。ValueError: window must be an integerdf.groupby(['id_col']).rolling('60d')['value_col'].sum().reset_index()什么有效,但不是很簡(jiǎn)單:選項(xiàng) 1:交叉聯(lián)接以填寫(xiě)所有缺失的日期(如果數(shù)據(jù)量很大,可能很難)選項(xiàng) 2:從可迭代對(duì)象的笛卡爾積構(gòu)建多索引,如這個(gè)答案所示。這實(shí)際上與上述選項(xiàng)非常相似。
查看完整描述

1 回答

?
滄海一幻覺(jué)

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用 參數(shù) 。文檔實(shí)際上提到了它,盡管沒(méi)有示例來(lái)查看適當(dāng)?shù)挠梅āP疫\(yùn)的是,有pandas github和這個(gè)問(wèn)題,如果你仔細(xì)閱讀評(píng)論,可以提供有關(guān)如何正確使用偏移窗口的滾動(dòng)功能的一些見(jiàn)解。onrolling

因此,解決方案是:

df.groupby(['id_col']).rolling('60d', on = 'dates')['value_col'].sum().reset_index()

請(qǐng)注意,作為代理的 2 個(gè)月而不是這樣,因?yàn)闀?huì)給你以下錯(cuò)誤:.有關(guān)此問(wèn)題的詳細(xì)信息,請(qǐng)查看此處的堆棧溢出問(wèn)題。60d2m2mValueError: <2 * MonthEnds> is a non-fixed frequency


查看完整回答
反對(duì) 回復(fù) 2022-09-06
  • 1 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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