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

如何在Pandas中将列名pd.NaT重命名为customer_name?

解决pd.NaT列名重命名失败的问题

方案1:从源头避免生成pd.NaT列名

执行reset_index时直接给原索引指定目标列名,一步到位:

df = df.reset_index(name="customer_name")

这是最稳妥的方式,完全跳过生成pd.NaT列名的步骤。

方案2:精准匹配缺失值类型列名

pd.NaT属于时间类型缺失值,直接用pd.NaT当字典键可能因类型匹配问题失效,改用pd.isna()判断列名是否为缺失值:

df = df.rename(columns=lambda x: "customer_name" if pd.isna(x) else x)

这种方式只会匹配缺失值类型的列名,不会影响其他正常列。

方案3:通过列位置索引重命名

如果知道pd.NaT列的位置(比如是第一列),直接替换对应位置的列名:

# 假设pd.NaT是第1列(索引0)
df.columns = ["customer_name"] + list(df.columns[1:])

完全绕过类型匹配问题,精准修改目标列。

原方法失效的原因

pd.NaT是特殊的缺失值对象,直接用它作为字典键时,哈希匹配不稳定,甚至会误匹配其他含缺失值逻辑的列名,导致影响无关列。上面的方案从源头、精准判断、位置定位三个角度解决了这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:50:34