在R或python中,在一个由37939行和16列组成的数据集中,我如何计算每列每10个数据点的中值



我有一个数据集,它是使用10 Hz(每秒(的采样率收集的,数据是非正态分布的,所以我希望计算每列每10个值的中值。然后,从生成的中位数中,我想计算每列下每60个中位数的中位数(所以现在基本上我每秒计算1个中位数(——我完全不知道如何做到这一点。我有python和R studio,数据由16列和397939个条目组成。如果你能帮我的话,提前非常感谢你!!!!!

请原谅我这么一个编码新手。这是个新手,但真的很想学习。

这是按N行分组的;

N = 10
df.reset_index(drop=True).groupby(by=lambda x: x/N, axis=0).mean()

您可能需要更改轴。

使用R和tidyverse,我会做一些类似的事情:

library(tidyverse)
df <- tibble(id = 1:50, x = runif(50, 0, 100))
df %>% mutate(block = rep(1:(nrow(df)/10), each = 10)) %>% 
group_by(block) %>% 
summarise(median = median(x))

您需要决定如何处理行数不是10的倍数这一事实。你可以重复这个过程来获得你每秒的中位数,也可以在块中用不同的数字运行相同的代码。

相关内容

最新更新