当我尝试通过时,我一直在努力处理从 Feather.jl 加载的数据框
using Feather,DataFrames, DataFramesMeta, CategoricalArrays
a = Feather.read("some_file.feather")
# the below fails
aaa = by(a, :some_col, df -> sum(df[:some_val]))
它给出了一个错误
MethodError:不能convert
将 String 类型的对象转换为 CategoricalArrays.CategoricalValue {String,Int32} 类型的对象
类型信息如下
typeof(a)
# DataFrames.DataFrame
typeof(a[:some_col])
# CategoricalArrays.NullableCategoricalArray{String,1,Int32}
typeof(a[:some_val])
# NullableArrays.NullableArray{Float64,1}
CategoricalArrays的文档不包含大量有关使用 DataFrames 的文档(我猜也不应该)
但是,我尝试用测试值替换该列,然后 by 起作用。
a[:some_col] = ["Testing" for i in 1:nrow(a)]
#this works
by(a,:some_col, df -> sum(df[:some_val]))
所以 CategoricalArrays 一定有问题。但我不知道如何做这个简单的总结。请帮忙