首页 > 解决方案 > 汇总 df 中的行

问题描述

我有以下示例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。

有解决办法吗?先感谢您。

标签: pythonpandassum

解决方案


基本上,您需要对每年的净变化进行滚动计算。

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

推荐阅读