Julia:如何获取 DataFrame/Table 每一列的类型?

xia*_*dai 6 dataframe julia

必须有一种简单的方法来获取 DataFrame 每一列的列类型。目前,我做

using DataFrames
a = DataFrame(a = [1,2,3], str = ["a","b","c"], f = [0.0, 1.0, 5.0])
[eltype(Array(col)) for col in eachcol(a)]
Run Code Online (Sandbox Code Playgroud)

是最好的方法吗?欣赏更高效、更优雅的解决方案

Cam*_*nek 8

您可以eltype在数据框的列上广播:

df = DataFrame(
    x = [1, 2, 3],
    y = ["a", "b", "c"],
    z = [0.0, 1.0, 5.0]
)
Run Code Online (Sandbox Code Playgroud)
julia> eltype.(eachcol(df))
3-element Array{DataType,1}:
 Int64
 String
 Float64
Run Code Online (Sandbox Code Playgroud)

注意:旧版本的 DataFrames.jl 有一个eltypes函数,但它已被弃用并从包中删除。

  • `eltypes` 在 master 上已被弃用。您可以使用“eltype.(eachcol(df))”。 (3认同)