Python pandas如何计算DataFrame当日与昨日值的差值并生成新数据表
你可以直接使用pandas内置的diff()方法实现需求,该方法默认会计算当前元素与前一个元素的差值,完全匹配你要的当日累计值减去前一日累计值的逻辑。
具体实现步骤
- 首先确保你的DataFrame已经按日期升序排列,你拿到的原始数据本身已经是按时间顺序返回的,保险起见可以先执行排序:
df = df.sort_index()
- 直接调用
diff()方法计算每日新增值:
# 新增列存储每日新增病例数 df['daily_new_cases'] = df['totale_casi'].diff()
- 由于首日数据没有前一日对比,会生成
NaN值,你可以根据需求处理,比如替换为0:
df['daily_new_cases'] = df['daily_new_cases'].fillna(0).astype('int')
- 如果需要单独存储差值的新DataFrame:
# 只保留日期索引和每日新增列的新DataFrame new_df = df[['daily_new_cases']].copy()
如果你用已经提取出的sts序列操作,写法会更简单:
daily_new = sts.diff().fillna(0).astype('int')
内容的提问来源于stack exchange,提问作者Fllecha
相关产品推荐
相关产品推荐

