Pandas数据帧有一个额外的"层"

i s*_*eal 5 python pandas

假设您有以下数据帧:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.nan,columns=['A','B','C'],index=[0,1,2])
Run Code Online (Sandbox Code Playgroud)

假设我想在这个pandas数据帧之上添加一个额外的"层",这样列A,第0行将具有其值,列B,第0行将具有不同的值,列C行0将具有某些内容,列A行1等等.就像现有的数据框一样.

是否可以添加其他图层?如何访问这些图层?这是否有效,即我应该只使用一个单独的数据框?并且可以通过访问各个层来将这些多个层保存为csv,还是有一个函数可以将它们分解为同一工作簿中的不同工作表?

Ste*_*ski 5

pandas.DataFrame 不能有3个维度:

DataFrame是一个二维标记数据结构,具有可能不同类型的列.

但是,有一种方法可以使用MultiIndex/Advanced Indexing伪造三维:

分层索引(MultiIndex)

分层/多级索引非常令人兴奋,因为它为一些非常复杂的数据分析和操作打开了大门,特别是对于处理更高维度的数据.从本质上讲,它使您能够在较低维度的数据结构中存储和操作具有任意数量维度的数据,如Series(1d)和DataFrame(2d).

如果你真的需要额外的尺寸,请选择pandas.Panel:

Panel对于三维数据而言,它是一种使用较少但仍然很重要的容器.

但不要错过文档中这个重要的免责声明:

注意:不幸的是Panel,被不常用的比SeriesDataFrame,已略有忽视功能明智的.提供的许多方法和选项DataFrame均不可用Panel.

还有pandas.Panel4D(实验性的)您不太可能需要它.