【发布时间】:2013-12-05 03:43:14
【问题描述】:
我有一个如下所示的数据框:
Trial Measurement Data
0 0 12
1 4
2 12
1 0 12
1 12
2 0 12
1 12
2 NaN
3 12
我想重新采样我的数据,以便每次试验只有两个测量值 所以我想把它变成这样:
Trial Measurement Data
0 0 8
1 8
1 0 12
1 12
2 0 12
1 12
这个相当少见的任务源于我的数据在刺激呈现部分存在故意抖动。
我知道 pandas 有一个重采样功能,但我不知道如何将它应用到我的二级索引,同时根据一级索引将数据保持在离散类别中:(
另外,我想迭代我的一级索引,但显然
for sub_df in np.arange(len(df['Trial'].max()))
不起作用,因为'Trial' 是一个索引,pandas 无法找到它。
【问题讨论】:
-
如何 (0, 1) 变为 8 而不是 12 但 (2,1) 变为 6(将 NaN 视为零而不是缺失数据)?你的重采样规则是什么?前半部分数据的均值和后半部分的均值,允许重叠,设置NaN为0?
-
我没有必须遵守的预定义重采样规则。我给出了这个例子,因为它看起来很直观。然而,确实,最好将 NaN 视为缺失数据。由于重叠,第一个值变为 8,是的。我仍然认为这是最好的方法。每次试验我有大约 256 个值,所以一个值重叠在任何情况下都不会产生任何影响。
-
你是否需要这样索引它,它可能更容易作为列并使用groupby
-
不,实际上我是这样编入索引的,认为这会让事情变得更容易:-/
标签: python pandas time-series resampling multi-index