Как добавить внешний объект в индекс серии - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть несколько Pandas серий, которые выглядят следующим образом:

s = pd.Series([1, 2, 3], index=[0, 1, 2])
s.index.name = 'id'

Каждая серия относится к некоторой группе с известным идентификатором. Я хотел бы добавить эти идентификаторы, хранящиеся в виде одной переменной int (group_id), в качестве первого уровня Series MultiIndex. Таким образом, полученная серия будет выглядеть так:

group_id  id
41        0     1
          1     2
          2     3

Как я могу это сделать?

1 Ответ

5 голосов
/ 10 апреля 2020

Для MultiIndex в Series необходимо переназначить новый, например, созданный MultiIndex.from_product:

s = pd.Series([1, 2, 3], index=[0, 1, 2])
s.index.name = 'id'
group_id  = 42

s.index = pd.MultiIndex.from_product([[group_id], s.index], names=['group_id','id'])
print (s)
group_id  id
42        0     1
          1     2
          2     3
dtype: int64
...