如何将DataFrame中column a的字符串类型转为Interval类型?
解决字符串转Pandas Interval类型的问题
直接使用astype("interval")无法将字符串格式的区间转为Interval类型,因为Pandas无法直接识别这类自定义字符串格式,需要手动解析后构造Interval对象。
可以利用pd.Interval.from_string()方法,它能直接解析(-inf, -9999999.0]这类字符串为Interval对象,结合apply()处理整列数据:
# 遍历字典中的每个DataFrame(注意避免用dict作为变量名,和内置函数冲突) for df in your_dict.values(): df["a"] = df["a"].apply(pd.Interval.from_string)
如果需要统一指定区间的闭端规则(比如左闭右开、右闭左开等),可以通过参数closed自定义:
# 示例:强制设置区间为右闭 df["a"] = df["a"].apply(lambda x: pd.Interval.from_string(x, closed='right'))
这个方法会自动解析字符串中的上下界、无穷值(inf)以及闭端符号,完全适配你之前转换为字符串的Interval格式。
内容的提问来源于stack exchange,提问作者anaktha
相关产品推荐
相关产品推荐

