【发布时间】:2013-12-06 17:09:42
【问题描述】:
9我有一个多索引数据框,我想对其重新采样以将数据点的频率降低 3 倍(意味着每 3 行变为 1 行)。
这个:
time value
ID measurement
ET001 0 0 2
1 0.15 3
2 0.3 4
3 0.45 3
4 0.6 3
5 0.75 2
6 0.9 3
ET002 0 0 2
1 0.16 5
2 0.32 4
3 0.45 3
4 0.6 3
5 0.75 2
我想变成这样:
time value
ID measurement
ET001 0 0.15 3
1 0.6 2.7
2 0.9 3
ET002 0 0.16 3.7
1 0.6 2.7
我试图像这样将我的时间列变成熊猫日期时间索引,然后使用重新采样:
df = df.set_index(pd.DatetimeIndex(timecourse_normed['Time']))
df = df.groupby(level=0).resample(rule='0.1S', how=np.mean)
但是第一行给了我实际的日期(1970 年左右),这对第二行毫无帮助。浏览 arund 堆栈溢出时,我发现了一些类似的 quiestios,它们都有不基于 panda 的重采样的解决方案 - 而且,遗憾的是,这对我的用例不可行。
你能帮帮我吗?
【问题讨论】:
-
这里的诀窍是把你的问题分开,你真的有两个问题:1970 年的小整数(因为那是纪元时间的开始),以及关于重新采样的一些东西(它不起作用是没有给第一个问题的惊喜)。
-
我不一定想通过日期时间转换来做到这一点,我只是提到了我尝试过的方法。 - 那我应该删除它吗?
-
我不明白你是如何得到你想要的结果的数字(第一个 4.5 是什么)。
-
抱歉,我将总和除以 2 而不是 3。现在数字应该是正确的。
标签: python datetime pandas time-series resampling