Pandas: preenchimento de encaminhamento por grupo com índice de data e hora

Eu tenho um conjunto de dados que tem duas colunas: empresa e valor.
Ele possui um índice de data e hora, que contém duplicatas (no mesmo dia, empresas diferentes têm valores diferentes). Os valores têm dados ausentes, portanto, desejo encaminhar os dados ausentes com o ponto de dados anterior da mesma empresa.

No entanto, não consigo encontrar uma boa maneira de fazer isso sem encontrar erros estranhos de grupo, sugerindo que estou fazendo algo errado.

Dados do brinquedo:

a = pd.DataFrame({'a': [1, 2, None], 'b': [12,None,14]})
a.index = pd.DatetimeIndex(['2010', '2011', '2012'])  
a = a.unstack() 
a = a.reset_index().set_index('level_1') 
a.columns = ['company', 'value'] 
a.sort_index(inplace=True)

Tentativas de soluções (não funcionaram:ValueError: cannot reindex from a duplicate axis):

a.groupby('company').ffill() 
a.groupby('company')['value'].ffill() 
a.groupby('company').fillna(method='ffill')

Solução Hacky (que fornece o resultado desejado, mas obviamente é apenas uma solução feia):

a['value'] = a.reset_index().groupby(
    'company').fillna(method='ffill')['value'].values

Provavelmente existe uma maneira simples e elegante de fazer isso, como isso é realizado no Pandas?

questionAnswers(3)

yourAnswerToTheQuestion