Как поменять местами определенные столбцы (но не все) в многоуровневом индексе - PullRequest
0 голосов
/ 05 октября 2018

У меня есть многоуровневый фрейм данных, для которого я хотел бы отбросить два элемента из многоуровневого индекса из индекса верхней строки (уровень 0) в индекс уровня 1, чтобы я мог затем развернуть полный верхний уровень 0и установите его в качестве вертикального индекса.Вот что я пробовал до сих пор:

import pandas as pd
newyork2 = pd.read_csv("https://github.com/thedatasleuth/New-York-Congressional-Districts/blob/master/newyork2.csv?raw=True")

newyork2.columns.get_level_values(0) #As you can see, 'Party' and 'Year' are part of this level - these are the columns I want to drop to level 1.

newyork2.columns.get_level_values(0)[0].swaplevel(0,1) # This breaks

1 Ответ

0 голосов
/ 05 октября 2018

На самом деле трудно определить, что вы хотите от своего вопроса.Звучит так, как если бы вы сказали:

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

import pandas

url = "https://github.com/thedatasleuth/New-York-Congressional-Districts/blob/master/newyork2.csv?raw=True"

newyork = (
    pandas.read_csv(url, header=[0, 1], index_col=[0, 1, 2])
        .reset_index(level=0, drop=True)
        .stack(level='DISTRICT')
        .rename_axis(['PARTY', 'YEAR','DISTRICT'], axis='index')
)

И я получаю:

STATUS                 Active  Inactive     Total
Party Year DISTRICT                              
DEM   2014 1         134293.0    9029.0  143322.0
           10        241859.0   29860.0  271719.0
           11        181049.0   10798.0  191847.0
           12        245977.0   35086.0  281063.0
           13        314229.0   37961.0  352190.0
           14        199060.0   17156.0  216216.0
           15        265862.0   29801.0  295663.0
           16        239335.0   22452.0  261787.0
           17        185510.0   13949.0  199459.0
           18        145155.0   12118.0  157273.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...