You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅对0到634行的total_deaths除以total_cases生成CFR新列

你原来的代码是对整列进行运算赋值,所以会覆盖所有行的CFR值,只需锁定0-634行的区间做运算和赋值即可:

修正后代码

如果你的数据行索引是默认的从0开始的连续整数,用loc写法:

import numpy as np
# 先初始化CFR列,未指定计算的行默认设为空值
data['CFR'] = np.nan
# 仅对0到634行计算病死率
data.loc[0:634, 'CFR'] = np.round(
    data.loc[0:634, 'total_deaths'] / data.loc[0:634, 'total_cases'] * 100,
    decimals=3
)

如果你的行索引不是默认连续整数,需要按行位置选取,用iloc写法(注意iloc切片为左闭右开,选0-634行需要写0:635):

import numpy as np
data['CFR'] = np.nan
# 获取各列的位置索引
cfr_idx = data.columns.get_loc('CFR')
death_idx = data.columns.get_loc('total_deaths')
case_idx = data.columns.get_loc('total_cases')

data.iloc[0:635, cfr_idx] = np.round(
    data.iloc[0:635, death_idx] / data.iloc[0:635, case_idx] * 100,
    decimals=3
)

注意事项

  • 计算前建议先过滤total_cases为0的行,避免出现除零错误,可在运算前加筛选条件:
    # 以loc写法为例,iloc同理
    valid_data = data.loc[0:634].query("total_cases != 0")
    data.loc[valid_data.index, 'CFR'] = np.round(valid_data['total_deaths'] / valid_data['total_cases'] * 100, 3)
    

内容的提问来源于stack exchange,提问作者Luci Fern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:45:04