首页 > 解决方案 > Julia - describe() 函数显示不完整的汇总统计信息

问题描述

我正在尝试使用 Julia 进行基本数据分析

我正在使用可以在此处找到的火车数据集(名为)使用以下代码来学习本教程:train_u6lujuX_CVtuZ9i.csv

using DataFrames, RDatasets, CSV, StatsBase
train = CSV.read("/Path/to/train_u6lujuX_CVtuZ9i.csv");
describe(train[:LoanAmount])

并得到这个输出:

Summary Stats:
Length:         614
Type:           Union{Missing, Int64}
Number Unique:  204

而不是教程的输出:

Summary Stats:
Mean:           146.412162
Minimum:        9.000000
1st Quartile:   100.000000
Median:         128.000000
3rd Quartile:   168.000000
Maximum:        700.000000
Length:         592
Type:           Int64
% Missing:      3.583062

这也对应于函数应该给出的StatsBase.jl的输出describe()

标签: statisticsjuliasummary

解决方案


这就是当前(在当前版本中)在 StatsBase.jl 中实现的方式。简而言之train.LoanAmount,它没有eltype那个子类型,Real然后 StatsBase.jl 使用一种仅打印长度、eltype 和唯一值数量的后备方法。您可以编写describe(collect(skipmissing(train.LoanAmount)))以获取摘要统计信息(当然缺失的数量除外)。

但是,实际上,我建议您使用另一种方法。如果您想在单个列上获得更详细的输出,请使用:

describe(train, :all, cols=:LoanAmount)

您将获得一个另外作为 a 返回的输出,DataFrame这样您不仅可以查看统计信息,还可以访问它们。

选项:all将打印所有统计信息,请参阅describeDataFrames.jl 中的文档字符串以查看可用选项。

您可以在此处找到在当前版本的 DataFrames.jl 上使用此函数的一些示例。


推荐阅读