假设您有以下数据框:
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,或者是否有一个函数可以将它们分解为同一工作簿中的不同工作表?
答案 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)你不太可能需要它。