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

替换embedPy为pykx后,调用pandas.read_html()报错求助

解决pykx中pandas read_html转换报错的问题

问题重现

原代码在embedPy中可正常执行,但切换到pykx后,运行pd[:read_html][test][@;0]时抛出TypeError("cannot parse from 'numpy.ndarray'")`错误。

解决思路与修改代码

问题核心是pykx与embedPy的Python对象转kdb+对象逻辑存在差异:embedPy会隐式完成pandas DataFrame到kdb+表的转换,而pykx对类型转换的要求更严格,需要显式触发转换操作,以此规避numpy数组类型的解析失败问题。

修改后的可用代码如下:

\l pykx.q 
pd:.pykx.import`pandas; 
test: "<table><tr><th>First Name</th><th>Last Name</th><th>Age</th></tr><tr><td>John</td><td>Doe</td><td>30</td></tr><tr><td>Jane</td><td>Smith</td><td>25</td></tr><tr><td>Emily</td><td>Jones</td><td>22</td></tr></table>"; 
// 获取pandas DataFrame对象
df: pd[`:read_html][test][@;0];
// 显式转换为kdb+兼容格式
result: .pykx.to_k[df];

补充说明

  • .pykx.to_k方法会自动将Python对象(如pandas DataFrame)转换为对应kdb+数据结构,处理numpy数据类型到kdb+类型的映射
  • 若需精细控制类型,可先通过.pykx.as_py将pykx封装的对象转为原生Python对象,处理后再执行转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:04:55