Обновить панды DataFrame Multilevel Index серией? - PullRequest
1 голос
/ 11 октября 2019

С учетом DataFrame с многоуровневым индексом (в этом примере 'userId' и 'date' являются частью индекса):

                 clicks
userId   date
x        1/1     1
         1/2     2
y        1/1     3
         1/3     4
z        1/1     4

И с учетом Series, который имеет значенияиз первого уровня мультииндекса DataFrame как его собственного индекса:

x    Alice
z    Charlie
y    Bob

Как можно обновить первый уровень индекса DataFrame, чтобы он стал значениями из серии? результирующий DataFrame будет выглядеть следующим образом:

Alice    1/1     1
         1/2     2
Bob      1/1     3
         1/3     4
Charlie  1/1     4

Примечание: я не могу полагаться на то, что упорядочивание Серии совпадает с упорядочением первого уровня мультииндекса (например, индекс Серии равен ['x', 'z ',' y '], тогда как первый уровень DataFrame - [' x ',' y ',' z '])

Заранее благодарим вас за внимание и ответ.

1 Ответ

1 голос
/ 11 октября 2019

Сопоставьте уровень с помощью серии, затем верните индекс обратно.

import pandas as pd

df.index = pd.MultiIndex.from_arrays(
            [df.index.get_level_values('userId').map(s),  # s is your Series
             df.index.get_level_values('date')])

             clicks
userId  date        
Alice   1/1        1
        1/2        2
Bob     1/1        3
        1/3        4
Charlie 1/1        4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...