【发布时间】:2016-01-14 02:01:09
【问题描述】:
我正在尝试使用 pandas 数据框分析测量“X”在几周内的平均每日波动,但是时间戳/日期时间等被证明特别难以处理。花了好几个小时试图解决这个问题后,我的代码变得越来越混乱,我认为我离解决方案更近了,希望这里的人可以指导我朝着正确的方向前进。
我在不同的时间和不同的日子测量了 X,将每日结果保存到具有以下形式的数据框中:
Timestamp(datetime64) X
0 2015-10-05 00:01:38 1
1 2015-10-05 06:03:39 4
2 2015-10-05 13:42:39 3
3 2015-10-05 22:15:39 2
由于测量的时间每天都在变化,我决定使用 binning 来组织数据,然后计算出每个 bin 的平均值和 STD,然后我可以绘制出来。我的想法是创建一个带有 bin 的最终数据框和 X 的平均值用于测量,“Observations”列只是为了帮助理解:
Time Bin Observations <X>
0 00:00-05:59 [ 1 , ...] 2.3
1 06:00-11:59 [ 4 , ...] 4.6
2 12:00-17:59 [ 3 , ...] 8.5
3 18:00-23:59 [ 2 , ...] 3.1
但是,我在使用 pd.cut 和 pd.groupby 时遇到了时间、日期时间、datetime64、timedelta 和 binning 之间不兼容的问题,基本上我觉得我在黑暗中刺伤,不知道解决这个问题的“正确”方法。我能想到的唯一解决方案是对数据帧进行逐行迭代,但我真的很想避免这样做。
【问题讨论】:
标签: python pandas datetime pandas-groupby