Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将数据帧转换为三维面板_Python_Pandas - Fatal编程技术网

Python 如何将数据帧转换为三维面板

Python 如何将数据帧转换为三维面板,python,pandas,Python,Pandas,我正在从一个CSV文件中读取数据,该文件包含爱尔兰海岸附近浮标网络的天气数据。它是一个时间序列数据集,每个浮标每小时都有读数。我想创建一个3D结构,其中每个浮标都有一个数据框,包含气象条件列,按日期和时间索引 我希望能够通过以下语法访问数据: df['column']['anotherColumn'] 我知道pandas有一个不推荐使用的Panel类,但我无法想出其他方法 任何帮助都将不胜感激,谢谢 熊猫面板被弃用,取而代之的是具有多级索引的数据帧。引自: 分层/多级索引非常令人兴奋,因为它打

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

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

df['column']['anotherColumn']
我知道pandas有一个不推荐使用的Panel类,但我无法想出其他方法


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

熊猫
面板
被弃用,取而代之的是具有多级索引的
数据帧
。引自:

分层/多级索引非常令人兴奋,因为它打开了 一些非常复杂的数据分析和操作, 尤其适用于处理高维数据。本质上,它是 使您能够使用任意数量的 低维数据结构中的维度,如系列(1d)和 数据帧(2d)

下面是一个带有多索引的数据帧的快速示例,用于表示三维数据集:

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
随后,您可以将数据集切片为二维部分,如下所示:

In [4]: df['buoy3']
Out[4]:
       wind     water
0  1.681150  0.910194
1 -2.217671  0.349224
2  1.356037 -0.024291
In [5]: df['buoy3']['water']
Out[5]:
0    0.910194
1    0.349224
2   -0.024291
Name: water, dtype: float64
您可以将数据集切片为1D部分(即单列),如下所示:

In [4]: df['buoy3']
Out[4]:
       wind     water
0  1.681150  0.910194
1 -2.217671  0.349224
2  1.356037 -0.024291
In [5]: df['buoy3']['water']
Out[5]:
0    0.910194
1    0.349224
2   -0.024291
Name: water, dtype: float64

使用多级索引?我会调查的。我是新来的熊猫,所以还没有制定出更精细的细节,谢谢。