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

Python如何给DataFrame新增列仅第一个单元格赋值

你当前的代码是对整列直接赋值,所以所有行的one_way_turnover字段都会被填充相同的计算值。要实现仅首行写入该值、其余位置留空,按你使用的数据分析库选择对应写法即可。

另外注意你现有代码里的.abs.sum()缺少方法调用的括号,正确写法是.abs().sum(),否则会抛出属性错误。

Pandas 实现方案

  1. 先创建空的新列,默认填充NaN:
import numpy as np
df['one_way_turnover'] = np.nan
  1. 计算目标值后仅给第一行赋值:
turnover_val = df[col_name].abs().sum() / 2
# iloc[0]对应第一行,通过columns.get_loc定位新列的位置
df.iloc[0, df.columns.get_loc('one_way_turnover')] = turnover_val

Polars 实现方案

如果你的代码用的是Polars库(原写法的df[:, '列名']是Polars的典型索引风格),可以直接用when-then语法批量判断行位置赋值:

import polars as pl

turnover_val = df[col_name].abs().sum() / 2
df = df.with_columns(
    one_way_turnover = pl.when(pl.int_range(0, pl.len()) == 0).then(turnover_val).otherwise(None)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:00:02