簡體   English   中英

Python。 使用列表中的一個步驟求和值

[英]Python. Sum values with a step inside list

我是 Python 新手,所以我的問題很簡單。

假設我有一個從 excel 導入的數據列表:

daily = pd.read_excel (r'path to excel')
daily = daily.to_numpy()

“每日”包含對某個變量的每日觀察。

我的目標是以 7(一周)為步長對所有觀察結果求和,並將結果存儲在新變量“周”中。 “daily”包含 300+ 個條目,因此“week”將有 300+//7 = 42+ 個條目。

我做過這樣的事情:
week1 = sum(daily[0:7])
week2 = sum(daily[7:14])
week3 = sum(daily[14:21])
week4 = sum(daily[21:28])等等...

week = (week1, week2, week3, ...)
我怎樣才能用 for/if 語句以更聰明的方式寫這個?
謝謝

一種簡潔的方法是使用列表理解 不過,根據您的問題,我建議您熟悉循環的一般用法。

week = [numpy.sum(daily[x:numpy.min(len(daily),x+7)]) for x in range(0, len(daily), 7)]

這會生成一個列表,其中每個元素是從索引xmin(x+7, len(daily))daily元素的總和(這樣我們就不會超出 daily 的邊界)。 range(start, stop, step)產生一個從 0 到每天長度的迭代,每次步進 7。

暫無
暫無

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

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