Если я правильно понял, вы могли бы сделать:
df2 = pd.DataFrame({'observation': {('foo', '2017-04-16'): 'green',
('bar', '2017-04-25'): 'red',
('zap', '2017-04-16'): 'red',
('zip', '2017-04-25'): 'blue',
('zip', '2017-04-16'): 'white'},
'observation': {('zap', '2017-04-16'): 'yellow',
('bar', '2017-04-27'): 'white',
('foo', '2017-05-16'): 'black',
('foo', '2017-04-25'): 'red',
('zip', '2017-08-16'): 'red'}})
df['observation'] = df.index.map(dict(zip(df2.index, df2.observation)))
Вывод
observation
bar 2017-04-27 white
foo 2017-04-25 red
2017-05-16 black
zap 2017-04-16 yellow
zip 2017-08-16 red
Ну, снова, я смещаюсь, но наше внутреннее тестирование указывает, что новое решение очень, очень, намного более стабильно.
И конечно это было разработано, чтобы быть. Вся 'аналитика' Ваших объектов COM/ActiveX является теперь базирующимся текстом. И так как это - базирующийся текст, это полностью находится под Вашим контролем. Так как это находится под Вашим контролем, можно заставить его сделать то, что Вы хотите. Больше никаких черных квадратов. Процесс прозрачен. Что касается импорта больших, волосатых Библиотек типов, мы успешно импортируем целые библиотеки типов MS Office и элементы управления ActiveX, и это является довольно волосатым.
Таким образом от того, где мы сидим, ответ на Ваш вопрос: Да, это очень стабильно.
Мое понимание - то, что RIDL хранится как текст и компилируется, поскольку он необходим настолько поддерживающий, что файл TLB непосредственно больше не необходим. Это - блестящее перемещение командой CodeGear для большого улучшения устойчивости.
Это обработает Вашу мега размерную библиотеку типов? Трудно для высказывания, поскольку у меня нет ничего похожего к этому большим..., но я не вижу причины, почему она не была бы.