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

Pandas如何创建填充含right=np.inf的Interval的列?

解决DataFrame添加Interval列时的IntCastingNaNError错误

错误原因

直接将单个pd.Interval(0, np.inf)赋值给DataFrame列时,pandas会自动推断列类型,但由于Interval包含np.inf(非有限值),类型推断过程中触发了整数转换异常。

解决方案

以下几种方法可正确创建目标列:

方法1:用pd.Series生成重复Interval序列并指定类型

import seaborn as sns
import pandas as pd
import numpy as np

tips = sns.load_dataset('tips')
# 创建包含重复Interval元素的Series,指定interval类型
tips['new_col'] = pd.Series([pd.Interval(0, np.inf)] * len(tips), dtype='interval[float64]')

方法2:用IntervalArray批量生成

import seaborn as sns
import pandas as pd
import numpy as np

tips = sns.load_dataset('tips')
# 从两个等长数组创建IntervalArray
tips['new_col'] = pd.IntervalArray.from_arrays([0]*len(tips), [np.inf]*len(tips))

方法3:用np.full快速生成填充值

import seaborn as sns
import pandas as pd
import numpy as np

tips = sns.load_dataset('tips')
# 生成全为目标Interval的数组,转成Series并指定类型
tips['new_col'] = pd.Series(np.full(len(tips), pd.Interval(0, np.inf)), dtype='interval')

这些方法通过明确指定列的interval类型,避免了pandas错误的类型推断,从而解决报错问题。

内容的提问来源于stack exchange,提问作者Probability is wonderful

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:21:30