當(dāng)我注意到這種奇怪的分箱時(shí),我正在用我認(rèn)為知道的有關(guān)大熊貓的一些東西回答另一個(gè)問(wèn)題,即時(shí)間序列重采樣。假設(shè)我有一個(gè)包含每日日期范圍索引的數(shù)據(jù)框和一個(gè)我想要重新采樣和求和的列。index = pd.date_range(start="1/1/2018", end="31/12/2018") df = pd.DataFrame(np.random.randint(100, size=len(index)), columns=["sales"], index=index)>>> df.head() sales2018-01-01 662018-01-02 182018-01-03 452018-01-04 922018-01-05 76現(xiàn)在我重新采樣一個(gè)月,一切看起來(lái)都很好:>>>df.resample("1M").sum() sales2018-01-31 15072018-02-28 11862018-03-31 1382[...]2018-11-30 13422018-12-31 1337如果我嘗試在更多個(gè)月內(nèi)重新采樣,盡管分箱開(kāi)始出現(xiàn)問(wèn)題。這一點(diǎn)尤其明顯6Mdf.resample("6M").sum() sales2018-01-31 15072018-07-31 83932019-01-31 7283第一個(gè) bin 跨越一個(gè)多月,最后一個(gè) bin 跨度為一個(gè)月。也許我必須設(shè)置closed="left"以獲得適當(dāng)?shù)南拗疲篸f.resample("6M", closed="left").sum() sales2018-06-30 80902018-12-31 90542019-06-30 39現(xiàn)在我在 2019 年有一個(gè)額外的垃圾箱,里面有來(lái)自 2018-12-31 的數(shù)據(jù)......這工作正常嗎?我錯(cuò)過(guò)了我應(yīng)該設(shè)置的任何選項(xiàng)嗎?編輯:這是我希望以六個(gè)月為間隔重新采樣一年的輸出,第一個(gè)間隔從 1 月 1 日到 6 月 30 日,第二個(gè)間隔從 7 月 1 日到 12 月 31 日。df.resample("6M", closed="left").sum() sales2018-06-30 80902018-12-31 9093 # 9054 + 39請(qǐng)注意,這里也有一些關(guān)于 6 月 30 日數(shù)據(jù)發(fā)生了什么的疑問(wèn),它是像我期望的那樣進(jìn)入第一個(gè)垃圾箱還是第二個(gè)?我的意思是最后一個(gè)垃圾箱很明顯,但同樣的情況可能發(fā)生在所有垃圾箱中。
2 回答

天涯盡頭無(wú)女友
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
添加np.random.seed(365)以檢查我們的兩個(gè)輸出。
print(df.resample("6M", kind='period').sum())
sales
2018-01 8794
2018-07 9033
這對(duì)你有用嗎?
- 2 回答
- 0 關(guān)注
- 213 瀏覽
添加回答
舉報(bào)
0/150
提交
取消