2017-02-20 58 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

你会介意看看原始问题中的更新吗? –

相关问题