Pandas: организация большого номера DF - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть df, который выглядит примерно так:

         ID         x1_2020-04-07  x2_2020-04-07  x1_2020-04-08   x2_2020-04-08
0     102717           21.0             11              15              21
1     136703           12.0             15              88              27
2     105140            2.0             39              53              24

По сути, x1 и x2 - это переменные, которые я отслеживаю в диапазоне дат: 2020-04-07 to 2020-04-08

Но я бы хотел как-то организовать этот df так, чтобы его можно было проще запрашивать. Возможно, я хочу представить MultiIndex, который может перевести x1 и x2 на верхний уровень, а затем даты ниже, например так:

MultiIndex              x1              x2              x1              x2
         ID         2020-04-07      2020-04-07      2020-04-08       2020-04-08
0     102717           21.0             11              15              21
1     136703           12.0             15              88              27
2     105140            2.0             39              53              24

Цель состоит в том, чтобы иметь возможность смотреть на отклонения в x1 и / или x2 во времени, поэтому я пытаюсь быть эффективным в том, как структурирована эта df.

Как бы я go о создании df, как это?

РЕДАКТИРОВАТЬ

или как это:

MultiIndex           2020-04-07      2020-04-07      2020-04-08       2020-04-08
         ID             x1              x2              x1              x2
0     102717           21.0             11              15              21
1     136703           12.0             15              88              27
2     105140            2.0             39              53              24

1 Ответ

1 голос
/ 17 апреля 2020

Используйте DataFrame.swaplevel для изменения порядка уровней имен разделенных столбцов на MultiIndex:

df = df.set_index('ID')
df.columns = df.columns.str.split('_', n=1, expand=True)
df = df.swaplevel(0,1, axis=1)
print (df)

       2020-04-07     2020-04-08    
               x1  x2         x1  x2
ID                                  
102717       21.0  11         15  21
136703       12.0  15         88  27
105140        2.0  39         53  24
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...