Swift中如何访问TabularData DataFrame切片指定索引的值?
解决Swift TabularData中DataFrame切片的行列访问问题
正确访问方式
针对你过滤得到的DataFrame.Slice类型的new,要获取第0行第4列的值,推荐两种可行方法:
方法1:按列位置取列后访问行元素
if let latitudeValue = new.column(at: 4)[0] as? Double { print(latitudeValue) }
column(at: 4)按索引定位到你定义的latitude列(从0开始计数),下标[0]取该列的第0行元素,最后转成对应类型(你定义的是Double)即可。
方法2:先取行对象再按列索引取值
if let row = new.rows.first, let latitudeValue = row.value(atColumnIndex: 4) as? Double { print(latitudeValue) }
new.rows.first获取过滤结果的第0行(因为你的过滤条件只会返回一行),value(atColumnIndex: 4)直接按列位置提取对应值。
你之前方法报错的原因
new.subscript(r: 0, c: 4):subscript是下标语法,不能作为函数调用,正确的下标用法应为new[0, columnAt: 4](需确保行索引为整数类型,或先将切片转为DataFrame)。new.index(0, 4):index方法用于获取索引对象,不是直接读取元素的方法。new(row: 0, column: 4):DataFrame及其切片没有这种形式的调用语法,属于用法错误。new[0][4]:第一个下标[0]返回整行数据,而行元素的访问需要传入列名(字符串类型),用整数4会触发类型不匹配错误。
内容的提问来源于stack exchange,提问作者Linda Xue
相关产品推荐
相关产品推荐

