从Web导入Mathematica中的表 – 空单元格问题
我用:
数据=导入[ “HTTP:// WEBURL /”,“数据”] 从一个站点导入数据.在该页面上有表格.这将创建嵌套列表,您可以轻松地以表格形式获取数据.例如: 网格[数据[[1]]] 会给出这样的东西: Player Age Shots Goals P1 24 10 2 P2 22 5 0 P3 28 11 1 ... 现在,这是问题所在.如果html表中的一个单元格为空,例如“Age”的条目,那么在html中,这将是这样的:< td>< / td>. Mathematica根本不包括它在列表中,甚至不包括,例如,“Null”值.相反,这一行只是由长度为3的列表表示,数据将被移动一列,因此您将获得“镜头”代替“年龄”和“目标”而不是“镜头”和“目标” “会空的. Player Age Shots Goals P1 24 10 2 P2 22 5 0 P3 10 0 ... 这会带来一个难题,因为如果您有一些空字段,那么您无法从列表中分辨出它属于哪一列.在Mathematica中导入时,有没有办法在html表中的空单元格上放置“Null”?例如,列表中的P4元素将如下所示: 解决方法
正如lumeng指出的那样,您可以使用FullData来正确填写HTML表元素.这是一个更简单的说明.
in = ImportString["&;<html><table> <tr> <td>(1,1)</td> <td>(1,2)</td> <td>(1,3)</td> </tr> <tr> <td>(2,1)</td> <td></td> <td>(2,3)</td> </tr> </table></html>&;",{"HTML","FullData"}]; Grid[in[[1,1]]] 如果您想要更完整地控制输出,我建议您将页面导入为XML.这是一个例子. in = ImportString["&;<html><table> <tr> <td>(1,1)</td> <td>(1,2)</td> <td>(1,3)</td> </tr> <tr> <td>(2,1)</td> <td></td> <td>(2,3)</td> </tr> </table></html>&;","XML"]; Column[Last /@ Cases[in,XMLElement["td",___],Infinity]] 您需要阅读一般的XML和Mathematica的版本,即XMLObject.但是,一旦掌握了它,它就会很愉快. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |