У меня есть многоиндексный ряд, как показано ниже.
> data = [['a', 'X', 'u', 1], ['a', 'X', 'v', 2], ['b', 'Y', 'u', 4], ['a', 'Z', 'u', 20]]
> s = pd.DataFrame(data, columns='one two three four'.split()).set_index('one two three'.split()).four
> s
one two three
a X u 1
v 2
b Y u 4
a Z u 20
Name: four, dtype: int64
Затем вторая серия только с индексами one
и three
:
>>> data2 = [['a', 'u', 3], ['a', 'v', -3]]
>>> s2 = pd.DataFrame(data2, columns='one three four'.split()).set_index('one three'.split()).four
>>> s2
one three
a u 3
v -3
Name: four, dtype: int64
Итак, насколькокак я вижу, s2
и s.loc[pd.IndexSlice[:, 'X', :]]
индексируются одинаково.
Таким образом, я бы ожидал, что смогу сделать:
>>> s.loc[pd.IndexSlice[:, 'X', :]] = s2
, но при этом результат будет NaN
значения:
>>> s
one two three
a X u NaN
v NaN
b Y u 4.0
a Z u 20.0
Name: four, dtype: float64
Как правильно это сделать?