0

当我尝试通过时,我一直在努力处理从 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 一定有问题。但我不知道如何做这个简单的总结。请帮忙

4

0 回答 0