作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个相当大的调查数据集(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/
我有一个相当大的调查数据集(100 多列和 5000 行),其中有一堆字符串变量。 我可以使用下面的函数将各个列一一转换, function fix_df_column(df) levels
我是一名优秀的程序员,十分优秀!