当to_dense()编辑时,Pandas SparseDataFrame会丢失列名

时间:2015-10-29 10:52:40

标签: python pandas sparse-matrix

我正在使用pandas版本0.16.0和python 2.7。

我在columnsindex索引上都有一个带有多索引的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'])

但我的问题是,为什么会发生这种情况,如果这是预期的行为,如果是这样 - 为什么?

谢谢!

0 个答案:

没有答案