美文网首页
Julia 数据科学库应用 案例探索长笔记

Julia 数据科学库应用 案例探索长笔记

作者: 二方亨 | 来源:发表于2020-05-03 22:20 被阅读0次
JuliaPro操作界面

这是一篇使用Julia集成库对数据集做探索的长笔记,有想法随时更新.

JuliaPro官方下载连接

目前打算学习的库有:

Queryverse:
  • Query:对标Python的pandas, R中的dplyr. 专注于对DataFrame对象的操作
  • CSV: File IO, 读写CSV文件
StatsKit:
  • 提供了各种统计学&机器学习库
Gadfly
  • 可视化库,对DataFrame对象很友好

using Queryverse, StatsKit, Gadfly
  • 载入CSV数据集
data = CSV.file("D:\\contest\\dianxin\\Train85p.csv") |> DataFrame

最后面的 "|> DataFrame" 中 "|>" 是管道操作符,相当于R中的"%>%", 作用是将上一个语句的结果传递入下一个语句. "DataFrame"本来是函数"DataFrame()", 但用在管道操作符后不需要括号

  • 数据检视

size()

data |> size

(3400, 20)

3400条记录,20个变量

show()

data |> show

3400×20 DataFrame. Omitted printing of 7 columns
│ Row  │ id    │ state  │ account_length │ area_code │ phone_number │ international_plan │ voice_mail_plan │ number_vmail_messages │ total_day_minutes │ total_day_calls │ total_day_charge │ total_eve_minutes │ total_eve_calls │
│      │ Int64 │ String │ Int64          │ Int64     │ String       │ String             │ String          │ Int64                 │ Float64           │ Int64           │ Float64          │ Float64           │ Int64           │
├──────┼───────┼────────┼────────────────┼───────────┼──────────────┼────────────────────┼─────────────────┼───────────────────────┼───────────────────┼─────────────────┼──────────────────┼───────────────────┼─────────────────┤
│ 1    │ 3     │ NJ     │ 137            │ 415       │  358-1921    │  no                │  no             │ 0                     │ 243.4             │ 114             │ 41.38            │ 121.2             │ 110             │
│ 2    │ 4     │ OH     │ 84             │ 408       │  375-9999    │  yes               │  no             │ 0                     │ 299.4             │ 71              │ 50.9             │ 61.9              │ 88              │
│ 3    │ 5     │ OK     │ 75             │ 415       │  330-6626    │  yes               │  no             │ 0                     │ 166.7             │ 113             │ 28.34            │ 148.3             │ 122             │
│ 4    │ 7     │ MA     │ 121            │ 510       │  355-9993    │  no                │  yes            │ 24                    │ 218.2             │ 88              │ 37.09            │ 348.5             │ 108             │
│ 5    │ 10    │ WV     │ 141            │ 415       │  330-8173    │  yes               │  yes            │ 37                    │ 258.6             │ 84              │ 43.96            │ 222.0             │ 111             │
│ 6    │ 12    │ RI     │ 74             │ 415       │  344-9403    │  no                │  no             │ 0                     │ 187.7             │ 127             │ 31.91            │ 163.4             │ 148             │
⋮
│ 3394 │ 4989  │ WA     │ 80             │ 510       │  397-4475    │  no                │  no             │ 0                     │ 157.0             │ 101             │ 26.69            │ 208.8             │ 127             │
│ 3395 │ 4990  │ MN     │ 150            │ 408       │  407-6315    │  no                │  no             │ 0                     │ 170.0             │ 115             │ 28.9             │ 162.7             │ 138             │
│ 3396 │ 4991  │ ND     │ 140            │ 510       │  364-8203    │  no                │  no             │ 0                     │ 244.7             │ 115             │ 41.6             │ 258.6             │ 101             │
│ 3397 │ 4992  │ AZ     │ 97             │ 510       │  410-3888    │  no                │  no             │ 0                     │ 252.6             │ 89              │ 42.94            │ 340.3             │ 91              │
│ 3398 │ 4994  │ WV     │ 73             │ 408       │  411-9655    │  no                │  no             │ 0                     │ 177.9             │ 89              │ 30.24            │ 131.2             │ 82              │
│ 3399 │ 4999  │ DC     │ 109            │ 510       │  394-2206    │  no                │  no             │ 0                     │ 188.8             │ 67              │ 32.1             │ 171.7             │ 92              │
│ 3400 │ 5000  │ VT     │ 86             │ 415       │  373-8058    │  no                │  yes            │ 34                    │ 129.4             │ 102             │ 22.0             │ 267.1             │ 104             │

show()函数会依据terminal窗口大小输出整洁的数据框

describe()

data |> describe |> print

20×8 DataFrame
│ Row │ variable              │ mean    │ min       │ median │ max       │ nunique │ nmissing │ eltype   │
│     │ Symbol                │ Union…  │ Any       │ Union… │ Any       │ Union…  │ Nothing  │ DataType │
├─────┼───────────────────────┼─────────┼───────────┼────────┼───────────┼─────────┼──────────┼──────────┤
│ 1   │ id                    │ 2492.52 │ 3         │ 2511.5 │ 5000      │         │          │ Int64    │
│ 2   │ state                 │         │ AK        │        │ WY        │ 51      │          │ String   │
│ 3   │ account_length        │ 99.965  │ 1         │ 100.0  │ 238       │         │          │ Int64    │
│ 4   │ area_code             │ 437.247 │ 408       │ 415.0  │ 510       │         │          │ Int64    │
│ 5   │ phone_number          │         │  327-1058 │        │  422-9831 │ 3400    │          │ String   │
│ 6   │ international_plan    │         │  no       │        │  yes      │ 2       │          │ String   │
│ 7   │ voice_mail_plan       │         │  no       │        │  yes      │ 2       │          │ String   │
│ 8   │ number_vmail_messages │ 7.76235 │ 0         │ 0.0    │ 52        │         │          │ Int64    │
│ 9   │ total_day_minutes     │ 181.006 │ 0.0       │ 180.6  │ 351.5     │         │          │ Float64  │
│ 10  │ total_day_calls       │ 99.8018 │ 0         │ 100.0  │ 163       │         │          │ Int64    │
│ 11  │ total_day_charge      │ 30.7716 │ 0.0       │ 30.7   │ 59.76     │         │          │ Float64  │
│ 12  │ total_eve_minutes     │ 201.037 │ 22.3      │ 201.25 │ 363.7     │         │          │ Float64  │
│ 13  │ total_eve_calls       │ 99.8253 │ 12        │ 100.0  │ 164       │         │          │ Int64    │
│ 14  │ total_eve_charge      │ 17.0883 │ 1.9       │ 17.105 │ 30.91     │         │          │ Float64  │
│ 15  │ total_night_minutes   │ 200.325 │ 23.2      │ 200.8  │ 381.6     │         │          │ Float64  │
│ 16  │ total_night_calls     │ 99.735  │ 12        │ 100.0  │ 175       │         │          │ Int64    │
│ 17  │ total_night_charge    │ 9.01475 │ 1.04      │ 9.04   │ 17.17     │         │          │ Float64  │
│ 18  │ total_intl_minutes    │ 10.2966 │ 0.0       │ 10.3   │ 20.0      │         │          │ Float64  │
│ 19  │ total_intl_calls      │ 4.47059 │ 0         │ 4.0    │ 19        │         │          │ Int64    │
│ 20  │ total_intl_charge     │ 2.7806  │ 0.0       │ 2.78   │ 5.4       │         │          │ Float64  │

describe函数会输出每个变量的:
均值, 最小值, 中间值, 最大值, 唯一值数量, 缺失值数量, 变量类型


输出各个州用户统计数量, 费用, 变异系数

state = data |>
    @mutate(total_charge = _.total_day_charge + _.total_eve_charge + _.total_night_charge + _.total_intl_charge) |>
    @groupby(_.state) |>
    @map({state = key(_), 
        count = length(_),
        mean_charge = mean(_.total_charge),
        vari_charge = variation(_.total_charge)}) |>
    @orderby_descending(_.mean_charge) |>
    DataFrame

state |> show

51×4 DataFrame
│ Row │ state  │ count │ mean_charge │ vari_charge │
│     │ String │ Int64 │ Float64     │ Float64     │
├─────┼────────┼───────┼─────────────┼─────────────┤
│ 1   │ KS     │ 73    │ 62.8116     │ 0.17163     │
│ 2   │ NJ     │ 77    │ 62.0979     │ 0.186393    │
│ 3   │ MD     │ 66    │ 62.0015     │ 0.169759    │
│ 4   │ IN     │ 65    │ 61.6071     │ 0.167058    │
│ 5   │ GA     │ 55    │ 61.4805     │ 0.158179    │
│ 6   │ OH     │ 82    │ 61.0411     │ 0.167827    │
⋮
│ 45  │ AZ     │ 61    │ 57.842      │ 0.183879    │
│ 46  │ SC     │ 57    │ 57.7188     │ 0.212173    │
│ 47  │ WI     │ 69    │ 57.6706     │ 0.197836    │
│ 48  │ MO     │ 54    │ 57.5093     │ 0.208202    │
│ 49  │ LA     │ 55    │ 57.4904     │ 0.148391    │
│ 50  │ CO     │ 60    │ 57.4585     │ 0.189113    │
│ 51  │ IL     │ 60    │ 57.3668     │ 0.174889    │

以州为分组, 对各州的用户数, 平均总费用, 用户总费用变异系数进行聚合.
结果显示:各州用户在州间平均总费用及州内各用户总费用差异并不大.

相关文章

  • Julia 数据科学库应用 案例探索长笔记

    这是一篇使用Julia集成库对数据集做探索的长笔记,有想法随时更新. JuliaPro官方下载连接 目前打算学习的...

  • Julia数据科学应用

    链接: https://pan.baidu.com/s/1GhOQU0rr5rfIbN7C7uJ8iw提取码: s...

  • Julia数据科学应用

    链接: https://pan.baidu.com/s/1ZuBKseuJKNgI4vClz4yGyA 提取码: ...

  • 《Julia 数据科学应用》总结

    Julia 入门 数据类型在 Julia 中特别重要,使用数据类型,可以使我们开发出的程序和函数具有更好的性能,并...

  • R数据科学笔记:4

    本次笔记整理了第一部分《探索》,具体函数的用法还是要去之前的笔记看一下R数据科学笔记:1R数据科学笔记:2R数据科...

  • Chap01 探索性数据分析

    第1章 探索性数据分析 统计学是一门应用科学关注的是数据的分析和建模。探索数据是所有数据科学项目的第一步。探索性数...

  • 数据科学商业应用案例

    一、场景(销售) PAS是一家销售企业管理软件的公司,公司上线了CRM、ERP、HR等系统,针对商机、合同、付款、...

  • 01 Julia语言基础知识

    julia 是在科学计算中比较新颖的语言,也算作目前科学计算中的一枝独秀。今天,探索一下基础的Julia语言的一些...

  • 皕杰报表在JBOSS上部署 2018-10-15

    皕杰报表web应用怎么部署到jboss? 本案例数据库为本地数据库mysql,web项目为原tomcatweb项目...

  • JMeter测试关系数据库(应用案例)

    应用案例 案例准备 从ecshop数据库获取商品及商品类型: SELECT g.goods_name,gt.cat...

网友评论

      本文标题:Julia 数据科学库应用 案例探索长笔记

      本文链接:https://www.haomeiwen.com/subject/xxyjghtx.html