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

如何将OML DataFrame中的Float列转换为Integer列?

解决OML DataFrame Float列转Integer列的问题

你遇到的问题是因为OML DataFrame的列对象是Oracle Machine Learning专属类型(比如这里的Float对象),它没有Pandas Series的astype方法,得用OML支持的操作方式实现类型转换,以下是两种可行方案:

方案1:使用SQL CAST函数(推荐,适合大数据量)

利用OML支持SQL表达式的特性,直接在数据库端完成转换,效率更高:

import pandas as pd
import oml

data = {"id" : [1, 2, 3, 4, 5], "val" : [4.0, 3.0, 6.0, 7.0, 5.0]}
df = pd.DataFrame(data)
DF = oml.push(df)

# 新增整数列val_int
DF = DF.assign(val_int=oml.sql("CAST(val AS INTEGER)"))

方案2:拉回Pandas处理(适合小数据量)

如果数据量不大,可以先把OML DataFrame拉回本地Pandas DataFrame处理,再重新推送到OML:

import pandas as pd
import oml

data = {"id" : [1, 2, 3, 4, 5], "val" : [4.0, 3.0, 6.0, 7.0, 5.0]}
df = pd.DataFrame(data)
DF = oml.push(df)

# 拉回本地处理
local_df = DF.pull()
local_df["val_int"] = local_df["val"].astype(int)
# 重新推送到OML
DF = oml.push(local_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:04:55