【发布时间】:2017-04-08 12:09:38
【问题描述】:
我已经努力了一个多星期来解决这个问题,但我似乎找不到解决方案。一些编码人员在帮助方面表现出色,但不幸的是,还没有人提供对我有用的建议。我将尝试尽可能简单地提出相同的问题。
我有很多(超过 100 个)csv 文件。所有 csv 文件都将“日期时间”作为其第一列。 “日期时间”格式为“YYYY-MM-DD HH:MM:SS”。每个文件在整个月内每 15 分钟提供一次数据行(大量数据行)。所有 csv 文件都位于三个单独的文件夹中,每个文件夹的路径如下:
“C:\Users\Documents\SummaryData\24Hour”
“C:\Users\Documents\SummaryData\Daytime”
“C:\Users\Documents\SummaryData\Nighttime”
24 Hour 文件夹中的 csv 文件跨越 24 小时的时间范围。 对于 MM:SS,Daytime 文件夹中的 csv 文件跨度为 06:00 - 18:00。 Nighttime 文件夹中的 csv 文件跨度为 18:00 - 06:00(MM:SS)。
例如,存在 2015 年 8 月的 csv 文件。对于这个月,在 24 Hour 文件夹中,我们有一个 csv 文件,它提供了整个 8 月的不间断 15 分钟间隔数据2015.
对于同一月份和年份,Daytime 文件夹中存在另一个 csv 文件,该文件仅提供 06:00 - 18:00 时间的数据。例如,请参见下面的文件的 sn -p。我随机选择提供从 8 月 12 日开始的数据。
例如,进一步进入月份:
Nighttime 也存在相同的文件,但跨越整个晚上的时间。
请注意,存在比上图中显示的列更多的列。
在保留这些原始的 15 分钟间隔文件的同时,我需要重新采样所有 csv 文件,以便每个文件都有自己的 Hourly、Daily 和 Monthly 文件。棘手的部分是,我希望某些列在重采样时间范围内求和,而其他列需要在时间范围内求平均。
因此,如果我要对当天的数据进行重新采样,我需要一些列来平均当天的数据,而其他列则汇总当天的数据。但尽管如此,我需要一个从这些原始的 15 分钟间隔 csv 文件创建的每日 csv 文件。但是,在所有文件中,具有相同标题名称的列需要相同的重新采样(因此,如果需要在一天内对 column["windspeed"] 进行平均,那么对于另一个 csv 文件中的 column["windspeed"] 来说,这将是相同的) .
另一个棘手的部分是,我还需要将这些文件导出为 csv 文件(到任何输出位置,例如“C:\Users\cp_vm\Documents\Output”)并自动重命名以表示它们是如何被重新采样的.
因此,以 2015 年 8 月的 csv 文件为例,该文件当前名为:
"2015August.csv",
如果我将此文件重新采样为每小时、每天和每月,我希望将所有这些重新采样的新 csv 文件保存为:
“2015AugustHourly.csv”和;
“2015AugustDaily.csv”和;
分别为“2015AugustMonthly.csv”。
我知道我需要使用某种形式的“for 循环”,而且我确实尝试过。但我无法弄清楚这一点。任何帮助将不胜感激!并感谢所有已经提供建议的人。
下面的输出示例显示了几个小时内的平均值:
下面的示例显示了一些附加列(SR_Gen 和 SR_All),它们是在几个小时内对 15 分钟数据求和的结果。
【问题讨论】:
-
您能否提供一个示例 .jpeg 来说明您要查找的内容(以 2016 年 8 月 29 日时间为例)?这将确保我正确理解目标。
-
@NickBraunagel 我已经包括(上)每小时重新采样数据输出应该是什么样子的示例。我目前所做的是创建一个单独的 csv(2 行 x n 列),其中列出了第 1 行中的列,而在第 2 行中,列出了重新采样的操作。因此,第 2 行由 ["mean"、"mean"、"mean"、"sum"] 等组成。然后我将两个列表(第 1 行和第 2 行)转换为字典:
-
您是否有权访问任何关系数据库服务器级别(即 MySQL、Postgres)、文件级别(即 SQLite、MS Access)?如果是这样,请导入 csvs 并按月/日/小时分组运行聚合。
-
好的,感谢您的输出说明。另外,另一个问题:对于 MONTHLY 重新采样,您是否试图找到一个月时间范围内白天和黑夜的月平均值,或者只是月平均值,无论白天/黑夜?例如,您想知道 Engine1 在一个月内的平均速度,还是 Engine1 在一个月内夜间和白天的平均速度?
-
@NickBraunagel 我想知道后者。即,发动机 1 在一个月内、夜间和白天的平均速度。谢谢。
标签: python csv datetime for-loop export-to-csv