我正在使用pandas版本0.16.0和python 2.7。
我在columns
和index
索引上都有一个带有多索引的SparseDataFrame:
In [1]: df.index.names
Out[1]: FrozenList([u'Malicious', u'Environment', u'Agent Version', u'Datamodel Version', u'Operating System', u'User', u'Process', u'Unique ID', u'Valid', u'Count'])
和
In [1]: df.columns.names
Out[1]: FrozenList([u'Feature', u'Parameter', u'Value'])
当我将DataFrame转换为密集矩阵时,index
多索引名称保持不变:
In [1]: df.to_dense().index.names
Out[1]: FrozenList([u'Malicious', u'Environment', u'Agent Version', u'Datamodel Version', u'Operating System', u'User', u'Process', u'Unique ID', u'Valid', u'Count'])
但columns
多索引名称丢失并替换为None
In [1]: df.to_dense().columns.names
Out[1]: FrozenList([None, None, None])
保持多指数结构。
我知道我可以通过
简单地重新分配以前的名字In [20]: dense = df.to_dense()
In [21]: dense.columns.names = df.columns.names
In [22]: dense.columns.names
Out[22]: FrozenList([u'Feature', u'Parameter', u'Value'])
但我的问题是,为什么会发生这种情况,如果这是预期的行为,如果是这样 - 为什么?
谢谢!