汇总df中的行

问题描述

我有以下示例df:

housing = {'year': [2001,2002,2003,2004,2005],'moved in': [10,26,15,11,12],'moved out': [4,23,1,3]}
df = pd.DataFrame(housing,columns = ['year','moved in','moved out'])

现在,我想创建一个具有计算值的列,该列将显示给定年份中房屋中的居住人数。在第一行中,必须计算得出结果的进出人数。在下一行中,应采用此结果加上移入的人数并减去移出的人数。结果将是今年仍住在该房屋中的人数。我想遍历整个df。

解决方案吗?预先谢谢你。

解决方法

基本上,您需要每年净变化的滚动金额。

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