Прикрепить вычисляемый столбец к существующему фрейму данных

Я начинаю изучать панд, и я следил за вопросомВот и не смог получить решение, предложенное для меня, и я получил ошибку индексации. Это то, что у меня есть

from pandas import *
import pandas as pd
d = {'L1' : Series(['X','X','Z','X','Z','Y','Z','Y','Y',]),
     'L2' : Series([1,2,1,3,2,1,3,2,3]),
     'L3' : Series([50,100,15,200,10,1,20,10,100])}
df = DataFrame(d)  
df.groupby('L1', as_index=False).apply(lambda x : pd.expanding_sum(x.sort('L3', ascending=False)['L3'])/x['L3'].sum())

который выводит следующее (я использую iPython)

L1   
X   3    0.571429
    1    0.857143
    0    1.000000
Y   8    0.900901
    7    0.990991
    5    1.000000
Z   6    0.444444
    2    0.777778
    4    1.000000
dtype: float64

Затем я пытаюсь добавить расчет кумулятивного числа под меткой «новый», как это предлагается в посте.

df["new"] = df.groupby("L1", as_index=False).apply(lambda x : pd.expanding_sum(x.sort("L3", ascending=False)["L3"])/x["L3"].sum())

Я получаю это:

   2196                         value = value.reindex(self.index).values
   2197                     except:
-> 2198                         raise TypeError('incompatible index of inserted column '
   2199                                         'with frame index')
   2200 
TypeError: incompatible index of inserted column with frame index

Кто-нибудь знает в чем проблема? Как я могу повторно вставить вычисленное значение в кадр данных, чтобы он показывал значения в порядке (по убыванию «new» для каждой метки X, Y, Z.)

Ответы на вопрос(1)

Ваш ответ на вопрос