簡體   English   中英

大熊貓清理

[英]Pandas Cleaning up

我有一個這種格式的 excel 文件,我正在嘗試在 Pandas 中讀取它並清理它:

我有一個這種格式的 excel 文件,我正在嘗試在 Pandas 中讀取它並清理它

我用 read_excel 讀入文件並從第 7 行開始創建了一個多索引級別([2013,2016,2017...]

    df= pd.read_excel(PATH_CY_TABLE, header= [7,8,9])

這是它的讀取方式:

這是它的讀取方式:

理想情況下,我想清理一下,看起來像這樣:

理想情況下,我想清理一下,看起來像這樣:

我可以按照什么步驟來獲得這種格式? 我嘗試過的幾件事是: 1. 刪除多索引的 1 級:其中列名稱顯示為“未命名...”

    df.columns= df.columns.get_level_values(1)

這給了我一個錯誤: IndexError: Too many levels: Index has only 1 level, not 2

  1. 堆疊列索引:

     df.stack()

這給了我一個錯誤: TypeError: '>' not supported between 'str' and 'int'

  1. 我試過這個:

     df.columns=df.columns.get_level_values(0)

這給了我 MultiIndex 的第一級 [2013, 2013, 2013, 2016,2016,2016...]。 但我希望輸出 df 在這里有兩個級別的索引:級別 0 和級別 3。

作為第一步,我希望刪除“未命名...”列名稱。 我曾嘗試將 df 作為輸出而不是圖片發布,但不確定如何以正確的方式進行操作 - 當我從 jupyter notebook 復制粘貼時,它們粘貼的內容都搞砸了。 我對在這里發布問題很陌生..所以仍在努力解決。

我仍然無法找到一種更好的方式來發布我的輸出,但我找到了一種將文件清理到所需輸出的方法:

我將 MultiLevelIndex 級別 0 切片以匹配我想要的年份(2017)

    df1= df
    df1= df1.iloc[:, df1.columns.get_level_values(0)== 2017]

出去:

                                                     Number      MOE1 (±)  Rate  
    Total..........................................…  323156.0    123.0     X   
    NaN                                                    NaN      NaN   NaN   
    Any health plan……………….……...…                      294613.0    662.0  91.2   
    NaN                                                    NaN      NaN   NaN   
   .Any private plan2,3………………………                     217007.0   1158.0  67.2 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM