[英]Pandas Cleaning up
我有一個這種格式的 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
堆疊列索引:
df.stack()
這給了我一個錯誤: TypeError: '>' not supported between 'str' and 'int'
我試過這個:
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.