我有以下示例df:
housing = {'year': [2001, 2002, 2003, 2004, 2005],
'moved in': [10, 26, 15, 11, 12],
'moved out': [4, 15, 23, 1, 3]}
df = pd.DataFrame(housing, columns = ['year', 'moved in', 'moved out'])
现在,我想创建一个具有计算值的列,该列将显示给定年份中房屋中的居住人数。在第一行中,必须计算得出结果的进出人数。在下一行中,应采用此结果加上移入的人数并减去移出的人数。结果将是今年仍住在该房屋中的人数。我想遍历整个df。
有解决方案吗?预先谢谢你。
答案 0 :(得分:0)
基本上,您需要每年净变化的滚动金额。
df['current'] = (df['moved in'] - df['moved out']).rolling(window=len(df), min_periods=1).sum()
print(df)
year moved in moved out current
0 2001 10 4 6.0
1 2002 26 15 17.0
2 2003 15 23 9.0
3 2004 11 1 19.0
4 2005 12 3 28.0
使用net change
列:
df['net change'] = df['moved in'] - df['moved out']
df['current'] = df['net change'].rolling(window=len(df), min_periods=1).sum()
print(df)
year moved in moved out net change current
0 2001 10 4 6 6.0
1 2002 26 15 11 17.0
2 2003 15 23 -8 9.0
3 2004 11 1 10 19.0
4 2005 12 3 9 28.0