【问题标题】:Using Pandas to represent 2D data series - what structure to use?使用 Pandas 表示 2D 数据系列 - 使用什么结构?
【发布时间】:2016-11-02 01:15:37
【问题描述】:

我正在分析足部压力,其中每个读数是一个 52x44 矩阵,完整捕获是这些 2D 读数的时间序列。

这可以很容易地用一个形状为 (52x44xN) 的 Numpy 数组来表示,其中 N 取决于采样率和捕获的持续时间。使用 Numpy,我已经可以执行我需要的所有操作(主要是切片和简单的描述性统计)。

我有兴趣探索 Pandas 的功能,但我想知道什么是合适的列名和结构。

使用 Numpy 3D 数组,我有索引 I、J 和 N。如果我使用 N 作为 Pandas DataFrame 的索引,我将使用什么作为数据列?我会觉得使用 I、J 和 V(值)作为列很奇怪,因为这会创建显式(和冗余)索引值,实际上使用的是 (3 x (52*44*N)) 形状的矩阵。

现在如果我将一个数组作为列值,那么 3D 切片(“框”选择)就会有问题,不是吗?

(编辑)我看过一些关于 MultiIndex 的东西,但我不确定如何使用它。

你有什么建议?

【问题讨论】:

  • 我没有这方面的经验,但xarray 是一个流行且支持良好的 Python 库,用于此类事情。
  • 您能否添加一个示例“现在,如果我将数组作为列值,则 3D 切片(“框”选择)会出现问题,不是吗?”你想要完成什么,为什么这行不通?另外,也许您可​​以考虑用于 3 维数据的 pandas.Panel。我之前只使用过DataFrame,所以不知道这是否能解决你的问题。
  • @user2570465 我已经阅读了有关这种情况的 Panel 文档,看起来它会起作用。但我相信,事实上,Pandas 似乎并没有为 Numpy 添加任何好处对于这个特定的用例,因为数据是同质的(单一数据类型),并且不同的列没有除了普通索引之外的语义。
  • @user2570465 但最后,是的,我认为 DataFrame/MultiIndex 或“3D”面板将是在有人真的想要表示 2D 时使用的结构时间序列。我会倾向于尝试第一个。您如何看待写一个答案以便我接受它?
  • @heltonbiker 我发布了关于 Pandas 的答案Panel。很高兴听到这是一个简单的解决方案。感谢您接受答案!

标签: python pandas numpy multidimensional-array


【解决方案1】:

也许尝试使用 Pandas Panel 处理 3 维数据。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Panel.html

供其他人参考,您可以在此处找到有关 1D (Series)、2D (Dataframe) 和 3D (Panel) Pandas 结构的信息:

http://pandas.pydata.org/pandas-docs/stable/dsintro.html

【讨论】:

  • 值得注意的是,Pandas Panel 自 0.20 版以来已被弃用,现在正式支持将 xarray 用于此类应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多