pandas面板“iterrows”(遍历主轴)

2024-04-20 12:47:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas面板,如下所示:

import pandas as pd
import numpy as np
P = pd.Panel(np.arange(90).reshape(5,6,3))

我想沿着长轴创建一个生成器,类似于pd.DataFrame.iterrows,以便在每次调用时,next返回一个包含当前主轴索引的元组和一个形状为(P.shape[0], P.shape[2])的元组。此功能是否已在pandas中可用?如果不是,有没有一种方法可以使用pd.DataFrame.iterrows或{}迭代器有效地复制这个功能?在

谢谢。在


Tags: import功能numpy面板dataframepandasasnp
2条回答

这就是你想要的吗?在

In [176]: [i for i in P.iteritems()]
Out[176]:
[(0,     0   1   2
  0   0   1   2
  1   3   4   5
  2   6   7   8
  3   9  10  11
  4  12  13  14
  5  15  16  17), (1,     0   1   2
  0  18  19  20
  1  21  22  23
  2  24  25  26
  3  27  28  29
  4  30  31  32
  5  33  34  35), (2,     0   1   2
  0  36  37  38
  1  39  40  41
  2  42  43  44
  3  45  46  47
  4  48  49  50
  5  51  52  53), (3,     0   1   2
  0  54  55  56
  1  57  58  59
  2  60  61  62
  3  63  64  65
  4  66  67  68
  5  69  70  71), (4,     0   1   2
  0  72  73  74
  1  75  76  77
  2  78  79  80
  3  81  82  83
  4  84  85  86
  5  87  88  89)]

或者:

^{pr2}$

我会这样做:

for m, df in P.to_frame().unstack().iterrows():
    print m
    print df.unstack()

更好的是:

^{pr2}$

解决方案

P.swapaxes(0, 1).iteritems()

相关问题 更多 >