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

使用Pandas设置新增DataFrame列的字符长度

解决方案

要添加2字符长度的字符串类型且值为null的列,你可以按以下方式操作:

方法1:指定字符串类型并初始化空值

直接赋值None会让列变成object类型,改用pd.NA配合字符串 dtype 定义:

import pandas as pd

new_cols = ["Assess", "Operator","x", "y","z", "g"]
# 初始化列为空值
df[new_cols] = pd.NA
# 转换为字符串类型
df[new_cols] = df[new_cols].astype(pd.StringDtype())

方法2:一步创建指定类型的列

用df.assign()结合pd.Series直接定义列的类型:

import pandas as pd

new_cols = ["Assess", "Operator","x", "y","z", "g"]
df = df.assign(**{col: pd.Series([pd.NA]*len(df), dtype=pd.StringDtype()) for col in new_cols})

补充:字符长度约束

pandas的StringDtype本身不强制限制长度,若需要确保后续输入的字符串符合2字符要求,可添加校验逻辑:

# 示例1:超过长度自动截断
df["Assess"] = df["Assess"].apply(lambda x: x[:2] if pd.notna(x) else x)

# 示例2:严格校验,不符合则报错
def check_length(s):
    if pd.notna(s) and len(s) != 2:
        raise ValueError(f"字符串长度必须为2,当前值:{s}")
    return s

df["Assess"] = df["Assess"].apply(check_length)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:20:41