[英]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
:尝试cumsum
和shift
:
>>> 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.