如何将时间序列数据添加到一系列时间序列列表中?

时间:2019-07-05 15:53:50

标签: python excel indexing time-series addition

我有一些带有特定时间序列数据的电子表格。我想将这些特定时间汇总到带有时间范围的摘要表中。

例如:我们有汇总日期范围

  • [Dec 21, Dec 22, Dec 23](午夜至午夜)。

,数据将如下所示:

  1. Dec 21 10:00 = 15
  2. Dec 21 11:00 = 10
  3. Dec 22 13:00 = 5
  4. Dec 22 16:00 = 10
  5. Dec 23 2:00 = 6
  6. Dec 23 12:00 = 6

因此,我希望总结总结为:Dec 21 = 25Dec 22 = 15Dec 23 = 12

我正在使用python,datetime和openpyxl模块来访问和创建时间值。

我很难理解创建时间序列表的情况。以及实际添加的内容。

从单个工作表中获取实际的日期时间和值很容易。

for sheet in projectList:
    ws = wb[sheet]
    LOCSum = 0
    LOCList = {}
    for cols in range(8,30):
        LOCDate = ws.cell(row=4, column=cols).value #A datetime
        LOCSum = ws.cell(row=70, column=cols).value #A number
        LOCList = LocList + appendToListOfValues(LOCDate, LOCSum)
    fitListOfValuesIntoSummary(LOCList)

一旦有了LOCDateLOCSum,我如何将它们放到一个列表中,然后可以将其添加到摘要中? appendToListOfValues()函数实际上并不存在。应该是字典吗?一个元组?

然后,一旦有了时间序列列表,如何使它适合摘要列表? fitListOfValuesIntoSummary()函数也不存在。

以及最后一个步骤,如果数据超出指定范围怎么办?我是否将其添加到摘要列表的“之前”和“之后”范围?

也请我指出一些文学的方向。

(我一直在输入此问题。)

是否会自动将发现的值添加到excel文档工作中的摘要单元格中?

if LOCDate >= summaryDate+1:
    summaryDate = summaryDate+1
if summaryDate <= LOCDate <= summaryDate+1:
    ws[summary]['correctCol'+'correctRow'].value = ws[summary]['correctCol'+'correctRow'].value + LOCSum

1 个答案:

答案 0 :(得分:0)

这最终为我工作。

for sheet in projectList:
    ws = wb[sheet]
    LOCDate = 0
    LOCSum = 0
    weeklyLOCAvailCol = 7
    for cols in range(8,30):
        LOCDate = ws.cell(row=19, column=cols).value #a datetime
        LOCSum = ws.cell(row=70, column=cols).value #a number
        if LOCDate >= wb[summName].cell(row=4, column=weeklyLOCAvailCol+1).value: #check if the current values date is greater than the next slot.
            weeklyLOCAvailCol += 1 #if so, move up one slot.
        wb[summary].cell(row=LOCAvailpos, column=weeklyLOCAvailCol).value = wb[summary].cell(row=LOCAvailpos, column=weeklyLOCAvailCol).value + LOCSum
#then, add the current LOCSum value to whatever is in the current date range cell.

所以最终发生的是,每个摘要单元格都保存着每个工作表单元格的当前总数。

只要H70-J70小于下一个时间范围的第一个日期时间,每张纸上的

H28就会被汇总在H70-J70中。并且一旦发现K70大于I28的日期时间,则下一组存储在I28

这不是理想的选择,因为它需要一个excel电子表格,但是会将数据放入一个范围内。如果有办法更快地做到这一点,我认为这会对其他人有所帮助。