如何通过2x2平均内核对熊猫数据帧进行下采样

gc5

我正在尝试对pandas数据帧进行降采样以减少粒度。例如,我要减少此数据框:

1  2  3  4
2  4  3  3
2  2  1  3
3  1  3  2

对此(使用均值进行下采样以获得2x2数据帧):

2.25  3.25
2     2.25

是否有内置的方法或有效的方法来完成它,或者我必须自己编写?

谢谢

安迪·海登(Andy Hayden)

一种选择是使用groupby两次。一次索引:

In [11]: df.groupby(lambda x: x//2).mean()
Out[11]:
     0    1  2    3
0  1.5  3.0  3  3.5
1  2.5  1.5  2  2.5

然后一次进入列:

In [12]: df.groupby(lambda x: x//2).mean().groupby(lambda y: y//2, axis=1).mean()
Out[12]:
      0     1
0  2.25  3.25
1  2.00  2.25

注意:一个只计算一次均值的解决方案可能是更可取的……一种选择是堆栈,groupby,均值和非堆栈,但是atm有点儿麻烦。

这似乎比Vicktor的解决方案快得多

In [21]: df = pd.DataFrame(np.random.randn(100, 100))

In [22]: %timeit df.groupby(lambda x: x//2).mean().groupby(lambda y: y//2, axis=1).mean()
1000 loops, best of 3: 1.64 ms per loop

In [23]: %timeit viktor()
1 loops, best of 3: 822 ms per loop

实际上,Viktor的解决方案使我的(动力不足的)笔记本电脑崩溃,从而无法使用更大的DataFrame:

In [31]: df = pd.DataFrame(np.random.randn(1000, 1000))

In [32]: %timeit df.groupby(lambda x: x//2).mean().groupby(lambda y: y//2, axis=1).mean()
10 loops, best of 3: 42.9 ms per loop

In [33]: %timeit viktor()
# crashes

正如Viktor所指出的那样,这不适用于非整数索引,如果需要的话,您可以将它们存储为临时变量,并在之后将其反馈回来:

df_index, df_cols, df.index, df.columns = df.index, df.columns, np.arange(len(df.index)), np.arange(len(df.columns))
res = df.groupby(...
res.index, res.columns = df_index[::2], df_cols[::2]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过2x2平均内核对熊猫数据帧进行下采样

来自分类Dev

通过平均对Matlab中的数据进行下采样

来自分类Dev

通过对熊猫进行采样,用不同元素填充数据帧中的空值

来自分类Dev

如何对numpy数组的2x2子数组的平均值进行矢量化处理?

来自分类Dev

如何对数据帧进行重采样

来自分类Dev

如何从第1组中选择X行但从第2组中选择Y行对熊猫数据框进行采样

来自分类Dev

熊猫在大型数据帧上对n点进行重新采样

来自分类Dev

根据数据帧中的实例创建2x2条件表

来自分类Dev

使用 Pandas 对数据帧的特定周期进行下采样

来自分类Dev

如何对时间序列熊猫数据帧重新采样?

来自分类Dev

如何通过仅获取此数据帧中2列的非NA值来对数据帧进行子集

来自分类Dev

我们如何通过使用float和int窗口大小的平均方法对一维数组值进行下采样?

来自分类Dev

MDX:如何使用硬编码值通过查询创建2x2数组

来自分类Dev

重采样熊猫多索引数据帧

来自分类Dev

如何按时段对熊猫数据框进行重新采样?

来自分类Dev

如何将2x2列联表转换为长格式数据框?

来自分类Dev

如何让 tensorflow 在具有 1 x 2 内核的 2 x 2 矩阵上进行卷积?

来自分类Dev

stride=2 的 2x2 deconv kernel 如何工作?

来自分类Dev

将2D阵列从2x2重新采样到4x4

来自分类Dev

熊猫:合并 2 个数据帧

来自分类Dev

我对这个数据帧进行下采样在哪里出错?

来自分类Dev

使用Lanczos滤镜进行2倍图像下采样

来自分类Dev

在python中对2d numpy数组进行下采样

来自分类Dev

用循环数据填充熊猫数据帧上采样

来自分类Dev

如何混合/平均N帧而不是2帧?

来自分类Dev

计算DataFrame的2x2行列组的平均值

来自分类Dev

如何通过每隔第二行删除一次来对数据帧进行重新采样(每隔30分钟测量一次)

来自分类Dev

如何对熊猫数据帧的子部分进行操作?

来自分类Dev

迭代和平均熊猫数据帧

Related 相关文章

  1. 1

    如何通过2x2平均内核对熊猫数据帧进行下采样

  2. 2

    通过平均对Matlab中的数据进行下采样

  3. 3

    通过对熊猫进行采样,用不同元素填充数据帧中的空值

  4. 4

    如何对numpy数组的2x2子数组的平均值进行矢量化处理?

  5. 5

    如何对数据帧进行重采样

  6. 6

    如何从第1组中选择X行但从第2组中选择Y行对熊猫数据框进行采样

  7. 7

    熊猫在大型数据帧上对n点进行重新采样

  8. 8

    根据数据帧中的实例创建2x2条件表

  9. 9

    使用 Pandas 对数据帧的特定周期进行下采样

  10. 10

    如何对时间序列熊猫数据帧重新采样?

  11. 11

    如何通过仅获取此数据帧中2列的非NA值来对数据帧进行子集

  12. 12

    我们如何通过使用float和int窗口大小的平均方法对一维数组值进行下采样?

  13. 13

    MDX:如何使用硬编码值通过查询创建2x2数组

  14. 14

    重采样熊猫多索引数据帧

  15. 15

    如何按时段对熊猫数据框进行重新采样?

  16. 16

    如何将2x2列联表转换为长格式数据框?

  17. 17

    如何让 tensorflow 在具有 1 x 2 内核的 2 x 2 矩阵上进行卷积?

  18. 18

    stride=2 的 2x2 deconv kernel 如何工作?

  19. 19

    将2D阵列从2x2重新采样到4x4

  20. 20

    熊猫:合并 2 个数据帧

  21. 21

    我对这个数据帧进行下采样在哪里出错?

  22. 22

    使用Lanczos滤镜进行2倍图像下采样

  23. 23

    在python中对2d numpy数组进行下采样

  24. 24

    用循环数据填充熊猫数据帧上采样

  25. 25

    如何混合/平均N帧而不是2帧?

  26. 26

    计算DataFrame的2x2行列组的平均值

  27. 27

    如何通过每隔第二行删除一次来对数据帧进行重新采样(每隔30分钟测量一次)

  28. 28

    如何对熊猫数据帧的子部分进行操作?

  29. 29

    迭代和平均熊猫数据帧

热门标签

归档