簡體   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