Pandas数据帧有一个额外的“层”

时间:2017-03-06 18:08:45

标签: python pandas

假设您有以下数据框:

import pandas as pd
import numpy as np

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

假设我想在这个pandas数据框之上添加一个额外的“图层”,这样列A,第0行将拥有其值,列B,第0行将具有不同的值,列C第0行将具有某些内容,列第1行,依此类推。就像在现有数据框之上的数据框架一样。

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

1 个答案:

答案 0 :(得分:5)

pandas.DataFrame cannot have 3 dimensions

  

DataFrame 是一个二维标记的数据结构,其中包含可能不同类型的列。

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

  

分层索引(MultiIndex)

     

分层/多级索引非常令人兴奋,因为它为一些非常复杂的数据打开了大门   分析和操纵,特别是对于更高的工作   尺寸数据。实质上,它使您能够存储和操作   在较低维数据中具有任意数量维度的数据   系列(1d)和DataFrame(2d)等结构。

如果您真的需要额外的维度,请使用pandas.Panel

  对于 3维数据,

Panel 是一个使用较少但仍然很重要的容器。

但请不要错过这些重要的免责声明:

  

注意:不幸的是Panel,不像Series那样常用,   DataFrame,在功能方面略有被忽视。一些   DataFrame中未提供Panel中提供的方法和选项。

还有pandas.Panel4D (experimental)你不太可能需要它。