简体   繁体   English

使用前面的行创建一个新列,pandas

[英]Create a new column using the previous rows , pandas

I have a pandas dataframe as shown below我有一个熊猫数据框,如下所示

CID RefID   Date        Group   MID 
100     1   1/01/2021       A   101                     
100     2   3/01/2021       A   nan                   
100     3   4/01/2021       A   nan            
100     4   15/01/2021      A   nan 

I want to transform the 'MID' column in a way that : MID + RefID = MID and so on for all the other values.我想以一种方式转换“MID”列:MID + RefID = MID 等所有其他值。 I have used .shift() method but didn't get the desired output我使用了.shift()方法,但没有得到想要的输出

Expected output:预期输出:

CID RefID   Date        Group   MID 
100     1   1/01/2021       A   101                     
100     2   3/01/2021       A   102                   
100     3   4/01/2021       A   104            
100     4   15/01/2021      A   107

Try cumsum and shift :尝试cumsumshift

>>> df['MID'] = df['MID'].ffill() + df['RefID'].shift(fill_value=0).cumsum()
>>> df
   CID  RefID        Date Group    MID
0  100      1   1/01/2021     A  101.0
1  100      2   3/01/2021     A  102.0
2  100      3   4/01/2021     A  104.0
3  100      4  15/01/2021     A  107.0
>>> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM