gpt4 book ai didi

julia - CatagoricalArrays 能否与 Julia Dataframes 一起使用以将多列从字符串转换为类别?

转载 作者:行者123 更新时间:2023-12-05 05:55:43 26 4
gpt4 key购买 nike

我有一个相当大的调查数据集(100 多列和 5000 行),其中有一堆字符串变量。

我可以使用下面的函数将各个列一一转换,

function fix_df_column(df)
levels = ["x"]
Colname = categorical(df[!, :Colname]; levels, ordered = false)
df[!, :Colname] = Colname
#df
end

但我希望能够遍历整个数据框并自动转换所有内容。

我能找到的唯一代码与数组有关 https://dataframes.juliadata.org/stable/man/categorical/我能找到的唯一示例是更改单列,而不是多列。

有人知道实现此目的的更简单方法吗?

谢谢

最佳答案

是的,你可以做到。假设您想要转换所有包含字符串的列(不丢失)并且您想要自动分配级别,您可以这样做:

transform!(df, names(df, AbstractString) .=> categorical, renamecols=false)

例如:

julia> df = DataFrame(x1=["a", "b"], x2=[1,2], x3=[missing, "x"], x4=["c", "d"])
2×4 DataFrame
Row │ x1 x2 x3 x4
│ String Int64 String? String
─────┼────────────────────────────────
1 │ a 1 missing c
2 │ b 2 x d

julia> transform!(df, names(df, AbstractString) .=> categorical, renamecols=false)
2×4 DataFrame
Row │ x1 x2 x3 x4
│ Cat… Int64 String? Cat…
─────┼────────────────────────────
1 │ a 1 missing c
2 │ b 2 x d

您可以看到只有 :x1:x4 发生了变化。

关于julia - CatagoricalArrays 能否与 Julia Dataframes 一起使用以将多列从字符串转换为类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69401368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com