如何用Pandas/Python高效计算园区人员的总停留天数?
高效计算园区人员总停留天数的Pandas实现
核心逻辑
每日在园人数 = 前一日在园人数 + 当日进入人数 - 当日离开人数,总停留天数为所有日期在园人数的总和。
实现步骤
- 计算每日人员净变化:
entry_persons - exit_persons - 对净变化序列做累积求和,得到每日在园人数
- 对累积求和结果再次求和,即为总停留天数
完整代码示例
import pandas as pd # 构造示例DataFrame data = { 'day': [1, 2, 3, 4, 5], 'entry_persons': [4, 2, 3, 5, 0], 'exit_persons': [0, 1, 4, 0, 1] } df = pd.DataFrame(data) # 计算每日净流动人数 daily_net = df['entry_persons'] - df['exit_persons'] # 累积求和得到每日在园人数,再求和得到总停留天数 total_stay_days = daily_net.cumsum().sum() print(total_stay_days) # 输出:30
效率说明
该方案使用Pandas内置的cumsum()和sum()方法,属于向量化操作,底层由C实现,避免了Python循环的开销,在处理大规模数据时性能优势显著。
内容的提问来源于stack exchange,提问作者Kallol
相关产品推荐
相关产品推荐

