2017-02-20 3 views
1

Ich arbeite an einem Aktienanalyseprogramm und muss 'SPLIT' Mengen von der 'UNP_action' finden, und kopieren Sie dann die entsprechende 'UNP_action_amount' in Zeilen nur darüber.DataFrame: Wenn Wert in einer Zelle, kopiere Wert in Zellen darunter

Ich kann dies in komplizierter Weise über Schleifen tun, aber ich frage mich, ob es eine effizientere Möglichkeit gibt, dies innerhalb Pandas zu tun.

Aktuell:

Date  UNP_Adj_Close UNP_action UNP_action_amount 
2008-05-23 31.83157   
2008-05-27 33.032365  
2008-05-28 32.965423  
2008-05-29 33.61812  SPLIT  0.5 
2008-05-30 34.438176  

Wunsch:

Date UNP_Adj_Close UNP_action UNP_action_amount 
2008-05-23 31.83157    0.5 
2008-05-27 33.032365    0.5 
2008-05-28 32.965423    0.5 
2008-05-29 33.61812 SPLIT  0.5 
2008-05-30 34.438176 

würde geschätzt Irgendwelche Vorschläge, danke!

Antwort

2

Wenn jede geteilte Reihe einen entsprechenden Wert zum Füllen hat, können Sie einfach fillna mit der backfill Methode verwenden, um Werte rückwärts zu propagieren.

df.UNP_action_amount.fillna(method='backfill') 

Demo

>>> df 
    data 
0 NaN 
1 NaN 
2 3.0 
3 NaN 
4 NaN 
5 2.0 
6 NaN 
7 NaN 
8 NaN 

>>> df.data.fillna(method='backfill') 
0 3.0 
1 3.0 
2 3.0 
3 2.0 
4 2.0 
5 2.0 
6 NaN 
7 NaN 
+0

Vielen Dank, das hilft viel! –

+0

Gern geschehen. – miradulo

+0

Würde es Ihnen etwas ausmachen, sich das Update in der ursprünglichen Frage anzusehen? –

Verwandte Themen