2017-02-20 56 views
1

我正在處理股票分析程序,需要從'UNP_action'中找到'SPLIT'量,然後將相應的'UNP_action_amount'複製到行只在它上面。DataFrame:如果在單元格中的值,將值複製到它下面的單元格

我能夠通過循環以複雜的方式做到這一點,但我想知道是否有一種更有效的方式在熊貓中做到這一點。

電流:

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  

期望:

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 

任何建議,將不勝感激,謝謝!

回答

2

如果每個拆分的行都有相應的值來填充,則可以使用fillnabackfill方法向後傳播值。

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

演示

>>> 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

非常感謝,這有很大幫助! –

+0

不客氣。 – miradulo

+0

你會介意看看原始問題中的更新嗎? –

相關問題