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

如何将pandas DataFrame最后一列设为指定列行和并解决赋值警告问题

解决方案

方案1:直接读取Excel公式计算后的结果

你读不到W列的公式值是因为pandas默认没有开启读取公式计算结果的配置,修改read_excel的参数即可:

df = pd.read_excel(pathTarget + target, sheet_name=clas, engine='openpyxl', data_only=True)

加data_only=True参数后会直接读取公式运行后的实际值,不需要自己再计算求和,直接转csv即可。

方案2:自行计算行和赋值到新列

不需要循环遍历,pandas支持直接按行批量求和,一行代码即可完成整列赋值,不会触发警告:

df['your_score'] = df.loc[:, 'Week1':'Week19'].sum(axis=1)

axis=1指定按行维度求和,会自动对每一行的Week1到Week19列求和后赋值到对应行的your_score列,性能比循环遍历高很多。

如果确实需要按行循环操作(比如有其他自定义计算逻辑),不要用df.iloc[x]['your_score']这种链式索引写法,改成单次定位的写法即可避免警告:

for x in df.index:
    # 单步定位计算行和
    row_sum = df.loc[x, 'Week1':'Week19'].sum()
    # 单步定位赋值,避免链式索引触发副本警告
    df.loc[x, 'your_score'] = row_sum

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:15:06