如何将熊猫数据框转换为3D面板

时间:2019-03-26 21:16:08

标签: python pandas

我正在从CSV文件中读取数据,该文件包含位于爱尔兰海岸附近的浮标网络的天气数据。它是一个具有每个浮标每小时读数的时间序列数据集。我想创建一个3D结构,其中每个浮标都有一个数据框,其中包含天气状况列,并按日期和时间编制索引。

我希望能够通过以下语法访问数据:

df['column']['anotherColumn']

我知道熊猫有一个不推荐使用的Panel类,但是我不知道该怎么做。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

不建议使用{@ {1}}多级索引的熊猫。引用pandas documentation

  

分层/多层索引非常令人兴奋,因为它打开了   进行一些非常复杂的数据分析和处理的大门,   尤其适用于处理高维数据。本质上,它   使您可以存储和处理任意数量的数据   低维数据结构(例如Series(1d)和   DataFrame(2d)。

这是一个带有MultiIndex的DataFrame的快速示例,该数据帧用于表示三维数据集:

Panel

随后,您可以像这样将数据切片切成2D部分:

DataFrame

您可以像这样将数据集切成一维部分(即单列):

In [1]: multi_index = pd.MultiIndex.from_arrays([
   ...:     ['buoy1', 'buoy1', 'buoy2', 'buoy2', 'buoy3', 'buoy3', 'buoy4', 'buoy4'],
   ...:     ['wind', 'water', 'wind', 'water', 'wind', 'water', 'wind', 'water'],
   ...: ])

In [2]: df = pd.DataFrame(np.random.randn(3, 8), columns=multi_index)

In [3]: df
Out[3]:
      buoy1               buoy2               buoy3               buoy4
       wind     water      wind     water      wind     water      wind     water
0  1.082442 -0.148975 -0.372837  0.075599  1.681150  0.910194  0.157064  0.183764
1 -0.019759  1.782505 -1.092751  0.324313 -2.217671  0.349224  1.085250 -0.715607
2 -1.308382 -0.994506 -0.306874  0.517858  1.356037 -0.024291  0.085105 -0.073061