我有一個由excel浮動格式日期(1996年7月5日以來的每分鐘)組成的列表列表以及與每個日期相關的整數值,如下所示:[[datetime,integer]...]
。我需要創建一個由所有日期(無小時或分鐘)組成的新列表以及該日期內所有日期時間值的總和。換句話說,當listolists[x][0] >= math.floor(listolists[x][0])
和listolists[x][0] < math.floor(listolists[x][0])
時,每個日期的值的總和是多少。謝謝列表日期列表的Python SumIfs
0
A
回答
0
由於您沒有提供任何實際數據(只是您使用的數據結構,嵌套列表),我在下面創建了一些虛擬數據來演示如何在Python中執行SUMIFS
類型的問題。
from datetime import datetime
import numpy as np
import pandas as pd
dates_list = []
# just take one month as an example of how to group by day
year = 2015
month = 12
# generate similar data to what you might have
for day in range(1, 32):
for hour in range(1, 24):
for minute in range(1, 60):
dates_list.append([datetime(year, month, day, hour, minute), np.random.randint(20)])
# unpack these nested list pairs so we have all of the dates in
# one list, and all of the values in the other
# this makes it easier for pandas later
dates, values = zip(*dates_list)
# to eventually group by day, we need to forget about all intra-day data, e.g.
# different hours and minutes. we only care about the data for a given day,
# not the by-minute observations. So, let's set all of the intra-day values to
# some constant for easier rolling-up of these dates.
new_dates = []
for d in dates:
new_d = d.replace(hour = 0, minute = 0)
new_dates.append(new_d)
# throw the new dates and values into a pandas.DataFrame object
df = pd.DataFrame({'new_dates': new_dates, 'values': values})
# here's the SUMIFS function you're looking for
grouped = df.groupby('new_dates')['values'].sum()
讓我們看看結果:
>>> print(grouped.head())
new_dates
2015-12-01 12762
2015-12-02 13292
2015-12-03 12857
2015-12-04 12762
2015-12-05 12561
Name: values, dtype: int64
編輯:如果您希望這些新的分組數據傳回在嵌套列表格式,只是這樣做:
new_list = [[date, value] for date, value in zip(grouped.index, grouped)]
0
謝謝大家。這是我能想出不需要熊貓最簡單的代碼:
for row in listolist:
for k in (0, 1):
row[k] = math.floor(float(row[k]))
date = {}
for d,v in listolist:
if d in date:
date[math.floor(d)].append(v)
else:
date[math.floor(d)] = [v]
result = [(d,sum(v)) for d,v in date.items()]
相關問題
- 1. 從python列表中的日期轉換
- 2. Python的比較日期範圍列表
- 3. 將熊貓日期列表轉換爲python日期字符串列表
- 4. 將字符串列表轉換爲日期列表Python 3.6
- 5. 轉換列表日期列表
- 6. 日期值比較Python列表
- 7. Java:將原始列表中日期的日期列表中的日期列表分開
- 8. 排序日期日期在列表
- 9. Python根據缺失日期拆分日期時間列表
- 10. 含日期標準的Sumifs
- 11. 帶日期參數列表的查詢日期範圍列
- 12. 將列表的日期轉換爲列日期
- 13. SharePoint列表日期格式
- 14. Java - 創建日期列表
- 15. PHP日期下拉列表
- 16. PHP MYSQL Foreach日期列表
- 17. 生成日期列表
- 18. 按日期分隔列表
- 19. jquery /比較日期列表
- 20. 數據表日期列
- 21. Python日期陣列
- 22. Python-列表列表
- 23. Python - 寫入列表的列表列表
- 24. 列表中的Python列表
- 25. python中列表的列表?
- 26. 文件名列表爲日期,按日期排列?
- 27. SUMIFS文本和日期
- 28. Datepicker vs下拉列表返回事件列表的日期列表
- 29. 生成日曆日期列表
- 30. 列表的列表與字符串日期排序?
你所說的「該日期內的日期時間」是什麼意思? – rassar
我認爲她想總結某一天的所有分鐘值。 – blacksite