假设我具有以下数据框...
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
答案 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