переиндексация ряда возвращает NaNs в Pandas - PullRequest
0 голосов
/ 13 июня 2018

Следующий код возвращает серию с NaN везде:

s = pd.Series([1, 2, 3, 4, 5, 6],
                 index=pd.MultiIndex.from_product([["A", "B"], ["c", "d", "e"]]))

s.reindex([('E', 'g'), ('E', 'h'), ('E', 'i'), ('F', 'g'), ('F', 'h'), ('F', 'i')])

или

s.reindex(pd.MultiIndex.from_product([['E', 'F'], ['g', 'h', 'i']]))

Как я могу переиндексировать серию и сохранить исходные значения?

Ваш совет будет оценен.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Если необходимо установить новые значения для второго уровня, используйте MultiIndex.set_levels:

s.index = s.index.set_levels(['g', 'h', 'i'], level=1)
print (s)
A  g    1
   h    2
   i    3
B  g    4
   h    5
   i    6
dtype: int64
0 голосов
/ 13 июня 2018

Это не reindex, то есть изменить index

s.index=pd.MultiIndex.from_product([['E', 'F'], ['g', 'h', 'i']])
s
Out[362]: 
E  g    1
   h    2
   i    3
F  g    4
   h    5
   i    6
dtype: int64
...