Как обновить подмножество мультииндексированных панд DataFrame
Я использую MultiIndexed pandas DataFrame и хотел бы умножить подмножество DataFrame на определенное число.
Это так же, какэто но с мультииндексом.
>>> d = pd.DataFrame({'year':[2008,2008,2008,2008,2009,2009,2009,2009],
'flavour':['strawberry','strawberry','banana','banana',
'strawberry','strawberry','banana','banana'],
'day':['sat','sun','sat','sun','sat','sun','sat','sun'],
'sales':[10,12,22,23,11,13,23,24]})
>>> d = d.set_index(['year','flavour','day'])
>>> d
sales
year flavour day
2008 strawberry sat 10
sun 12
banana sat 22
sun 23
2009 strawberry sat 11
sun 13
banana sat 23
sun 24
Все идет нормально. Но, скажем, я заметил, что все субботние цифры - это только половина того, что должно быть! Я хотел бы умножить всеsat
продажи по 2.
Моя первая попытка была:
sat = d.xs('sat', level='day')
sat = sat * 2
d.update(sat)
но это не работает, потому что переменнаяsat
потерялday
уровень индекса:
>>> sat
sales
year flavour
2008 strawberry 20
banana 44
2009 strawberry 22
banana 46
поэтому pandas не знает, как присоединить новые данные о продажах к старому фрейму данных.
У меня был быстрый удар в:
>>> sat = d.xs('sat', level='day', copy=False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2248, in xs
raise ValueError('Cannot retrieve view (copy=False)')
ValueError: Cannot retrieve view (copy=False)
Я понятия не имею, что означает эта ошибка, но мне кажется, что я делаю гору из мухи слона. Кто-нибудь знает правильный способ сделать это?
Спасибо заранее, Роб