pandas - 我应该如何使用上一行的 fillna 结果填充 na?
问题描述
假设我有以下数据框...
money change
2 2
1 1
na 2
na 2
na 1
1 1
我希望 na 值是前一个值加上前一行的更改值。请注意,非 nan 条目不一定遵循此模式。我应该如何填写货币列下的 na 条目,使其如下所示...
money change
2 2
1 1
2 2
4 2
6 1
1 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