Pandas: groupby forward fill with datetime index

Ich habe ein Dataset mit zwei Spalten: Firma und Wert.
It hat einen datetime-Index, der Duplikate enthält (am selben Tag haben verschiedene Unternehmen unterschiedliche Werte). Die Werte haben fehlende Daten, daher möchte ich die fehlenden Daten mit dem vorherigen Datenpunkt desselben Unternehmens weiterleiten.

Ich kann jedoch keinen guten Weg finden, dies zu tun, ohne auf merkwürdige Gruppenfehler zu stoßen, was darauf hindeutet, dass ich etwas falsch mache.

Spielzeugdaten:

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)

Versuchte Lösungen (hat nicht funktioniert:ValueError: cannot reindex from a duplicate axis):

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

Hacky-Lösung (die das gewünschte Ergebnis liefert, aber offensichtlich nur eine hässliche Umgehung darstellt):

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

Es gibt wahrscheinlich eine einfache und elegante Möglichkeit, dies zu tun. Wie wird dies in Pandas durchgeführt?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage