Панды Уборка - PullRequest
       57

Панды Уборка

0 голосов
/ 04 марта 2019

У меня есть файл Excel в этом формате, и я пытаюсь прочитать его в Pandas и очистить его:

I have an excel file in this format and I am trying to read it in Pandas and clean it up

Я прочитал вфайл с read_excel и создал многоиндексный уровень, начиная со строки 7 ([2013,2016,2017 ...]

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

Вот как это читается в:

This is how it read in:

В идеале я хочу привести в порядок что-то вроде этого:

Ideally, I want to clean up to look something like this:

Какие шаги я могу выполнить, чтобыполучить этот формат? Несколько вещей, которые я пробовал: 1. удалить уровень 1 мультииндекс: где имена столбцов отображаются как «безымянный ...»

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

Это дает мне ошибку: IndexError: Слишком много уровней: у Index только 1 уровень, а не 2

Стекирование индексов столбцов:

df.stack()

Это дает мне ошибку: Ошибка типа:>> не поддерживается между экземплярами 'str' и 'INT '

Я пробовал это:

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

И это дало мне первый уровень MultiIndex, как [2013, 2013, 2013, 2016,2016,2016 ...].Но я хочу, чтобы выходные данные df имели здесь два уровня индексов: уровень 0 и уровень 3.

В качестве первого шага я хочу удалить имена столбцов «Безымянный ...».Я попытался опубликовать df как вывод вместо изображений, но не уверен, как сделать их правильно: когда я копирую вставить из блокнота jupyter, они вставляют все испорчено.Я совершенно новичок в том, чтобы публиковать здесь вопросы ... так что все еще стараюсь изо всех сил.

1 Ответ

0 голосов
/ 04 марта 2019

Я все еще не смог найти лучший способ опубликовать свой вывод, но я обошел способ очистить файл до желаемого результата:

Я нарезал уровень 0 MultiLevelIndex, чтобы соответствовать году, который я хочу(2017)

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

Out:

                                                     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 
...