【发布时间】:2014-08-12 04:11:31
【问题描述】:
第一次在这里发帖,希望能有收获:)
基本上,我有一个包含时间序列数据的 CSV 文件。我正在使用 pandas.read_csv 从 CSV 创建数据框。然而,它的组织方式很烦人,第一列仅用于日期,第二列用于每天 5 分钟的间隔(例如 0、5、10、15,直到 1435)。使问题更加复杂的是,有些日子数据不完整,即缺少行。因此,对于特定日期,时间间隔可能会变为 5、10、60、505 等。这意味着我不能简单地以 5 分钟的间隔从头开始创建日期时间索引。
因此,我必须有某种方法使用 B 列中的数据并将其与 A 列中的日期结合起来,以提供我想要的时间序列。我必须将此结果列附加到同一个数据框,然后将其用作索引,以允许我生成每小时数据的平均值。
经过大量的血汗和泪水,我想出了这个到目前为止,它生成了一个新的时间列表。据我所知,第一部分是正确的。
df = pd.read_csv(myfile)
newtime = []
for r in df['Time']:
if r // 60 < 10:
if r % 60 < 10:
r = "0" + str(r // 60) + ":0" + str(r % 60) + ":00"
else:
r = "0" + str(r // 60) + ":" + str(r % 60) + ":00"
else:
if r % 60 < 10:
r = str(r // 60) + ":0" + str(r % 60) + ":00"
else:
r = str(r // 60) + ":" + str(r % 60) + ":00"
newtime.append(r)
datetimes = []
for r in range(len(df['Date'])+1):
v = str(df['Date'][r]) + newtime[r]
datetimes.append(v)
print datetimes
但是,当我尝试将它与日期(代码的最后一点)连接时,我得到一个非常随机的错误(KeyError:203591L)。奇怪的是,如果我将 v = 替换为 print 并删除带有 append 语句的行,它就可以正常工作。
我希望有人可以帮助我将现有代码开发成一个解决方案(直到它可以用于df.resample('1H', how={columnX: np.mean}) ),或者告诉我如何以不同的方式完成整个事情。
提前非常感谢!
Seb
【问题讨论】:
标签: python python-2.7 datetime pandas