繁体   English   中英

python pandas稀疏数据帧会丢失多索引列名还是我做错了?

[英]Do python pandas sparse dataframes lose multi-index column names or am I doing it wrong?

我只想看看在打开问题之前是否有人能看到我所做的错误...

最小的示例-首先创建一个多索引数据框:

miindex = pd.MultiIndex.from_product([["x","y"], ["10","20"]],names=['row-foo', 'row-bar'])    
micol = pd.MultiIndex.from_product([['a','b','c'], ["1","2"]],names=['col-foo', 'col-bar'])
df = pd.DataFrame(index=miindex, columns=micol).sortlevel().sortlevel(axis=1)
df = df.fillna(value=3.14) 
df

这为我们提供了一个很好的带有列和行级别名称的测试多索引:

具有有效列级别名称的Python多索引

现在,如果我从中制作一个稀疏矩阵并将其显示出来,列级名称就消失了:

ds = df.to_sparse()
ds

缺少列级别名称的Python稀疏多索引

如果我将稀疏版本转换回密集版本,则这些级别名称仍然不存在:

tf = ds.to_dense()
tf

缺少列级别名称的Python密集型多索引

现在,我知道显示稀疏版本会调用to_dense(),但是丢失似乎是在转换为稀疏版本时发生的。 我正在探索迁移到稀疏模式以减少代码库的内存使用,并且尝试访问稀疏数据帧内的级别会产生“ KeyError:'未找到级别'”

有谁知道如何在熊猫稀疏数据框中保留列级名称?

(测试显示在熊猫0.17.0上,也在0.16.2上观察到)

这是熊猫里的虫子。

问题追踪器在这里: https : //github.com/pydata/pandas/issues/11600

发送请求请求并将修订代码合并到主服务器

看起来修复将在0.17.1中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM