[英]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)]
這會生成一個列表,其中每個元素是從索引x
到min(x+7, len(daily))
的daily
元素的總和(這樣我們就不會超出 daily 的邊界)。 range(start, stop, step)
產生一個從 0 到每天長度的迭代,每次步進 7。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.