Что касается комментария, что «вы должны сначала построить дерево DOM»: Нет, вам не нужно и не должно этого делать.
Вместо этого создайте StreamSource (новый StreamSource (новый StringReader (str)), и передать это упомянутому идентификатору трансформатора.Это будет использовать синтаксический анализатор SAX, и результат будет намного быстрее. Построение промежуточного дерева - это чистые накладные расходы для этого случая. В противном случае ответ верхнего уровня хорош.
Возможным решением является добавление массива 1d numpy, созданного из Series для предотвращения выравнивания столбцов DataFrame к индексу Series:
df = df + s.values
print (df)
A B C
0 0.207070 1.995021 4.829518
1 0.819741 2.802982 2.801355
Если те же столбцы и значения индекса работают с sum
: