如何使用上一行的fillna结果填充na?

时间:2020-02-16 00:51:49

标签: pandas

假设我具有以下数据框...

money change
2     2
1     1 
na    2
na    2
na    1
1     1

我希望na值是前一个值加上前一行的更改值。请注意,非nan条目不一定遵循此模式。 我应该如何填写money栏下的na条目,使其看起来像以下内容...

money change
2     2
1     1 
2     2
4     2
6     1
1     1

1 个答案:

答案 0 :(得分:1)

我已经通过使用简单的python's dictionary概念来解决了。请检查:

dfDict = df.to_dict(orient='records')
prevMoney = 0
prevChange = 0
outDictList = []
for aDict in dfDict:
    curMoney = aDict['money']
    curChange = aDict['change']
    if str(aDict['money'])=='nan':
        aDict['money'] = prevMoney + prevChange
    prevMoney = curMoney
    prevChange = curChange
    outDictList.append(aDict)

pd.DataFrame(outDictList)

输出:

   change  money
0     2.0    2.0
1     1.0    1.0
2     2.0    2.0
3     2.0    4.0
4     1.0    6.0
5     1.0    1.0
相关问题