# Julia数据处理常用包_DataFrames包测试2_2020-02-19W
#@ 前面我们学习了如安装Julia第三方包:DataFrames、如何构建DataFrame对象和一些表格数据的操作,那今天我们继续DataFrames的学习和测试
## 1.重新构建DataFrame对象
using DataFrames
mya1 = ["王冕","张峰","李磊","周迅","赵云","苏梅"]
mya2 = ["女","男","男","女","男","女"]
mya3 = [12,14,9,15,8,14]
mya4 = [96,86,75,98,100,63]
mya5 = ["A","B","C","A","A","D"]
studf1 = DataFrame()
studf1[:姓名] = mya1
studf1[:性别] = mya2
studf1[:年龄] = mya3
studf1[:成绩] = mya4
studf1[:评级] = mya5
println(studf1)
print("studf1表格的行数和列数为:",size(studf1))
# 6×5 DataFrame
# │ │ String │ String │ Int64 │ Int64 │ String │
# ├─────┼────────┼────────┼───────┼───────┼────────┤
# │ 1 │ 王冕 │ 女 │ 12 │ 96 │ A │
# │ 2 │ 张峰 │ 男 │ 14 │ 86 │ B │
# │ 3 │ 李磊 │ 男 │ 9 │ 75 │ C │
# │ 4 │ 周迅 │ 女 │ 15 │ 98 │ A │
# │ 5 │ 赵云 │ 男 │ 8 │ 100 │ A │
# │ 6 │ 苏梅 │ 女 │ 14 │ 63 │ D │
# studf1表格的行数和列数为:(6, 5)
## 2.一些函数的应用
### 2.1 获取最大值:maximum
println("学生成绩的最高分:",maximum(studf1.成绩))
# 学生成绩的最高分:100
### 2.2 获取最小值:minimum
println("学生成绩的最低分:",minimum(studf1.成绩))
# 学生成绩的最低分:63
### 2.3 获取总和:sum
println("学生的总成绩:",sum(studf1.成绩))
# 学生的总成绩:518
## 3.升降序排列表格数据:sort!()
### 3.1 升序排列
println("按学生成绩升序排列显示表格信息:")
# 按学生成绩升序排列显示表格信息:
println(sort!(studf1, cols = [:成绩]))
# │ Row │ 姓名 │ 性别 │ 年龄 │ 成绩 │ 评级 │
# │ │ String │ String │ Int64 │ Int64 │ String │
# ├─────┼────────┼────────┼───────┼───────┼────────┤
# │ 1 │ 苏梅 │ 女 │ 14 │ 63 │ D │
# │ 2 │ 李磊 │ 男 │ 9 │ 75 │ C │
# │ 3 │ 张峰 │ 男 │ 14 │ 86 │ B │
# │ 4 │ 王冕 │ 女 │ 12 │ 96 │ A │
# │ 5 │ 周迅 │ 女 │ 15 │ 98 │ A │
# │ 6 │ 赵云 │ 男 │ 8 │ 100 │ A │
### 3.2 降序排列
println("按成绩降序排列显示表格数据:")
# 按成绩降序排列显示表格数据:
println(sort!(studf1, cols = [:成绩], rev = true))
# │ Row │ 姓名 │ 性别 │ 年龄 │ 成绩 │ 评级 │
# │ │ String │ String │ Int64 │ Int64 │ String │
# ├─────┼────────┼────────┼───────┼───────┼────────┤
# │ 1 │ 赵云 │ 男 │ 8 │ 100 │ A │
# │ 2 │ 周迅 │ 女 │ 15 │ 98 │ A │
# │ 3 │ 王冕 │ 女 │ 12 │ 96 │ A │
# │ 4 │ 张峰 │ 男 │ 14 │ 86 │ B │
# │ 5 │ 李磊 │ 男 │ 9 │ 75 │ C │
# │ 6 │ 苏梅 │ 女 │ 14 │ 63 │ D │
## 4.利用describe()函数获取表格的统计信息
### 4.1构建测试数据
using DataFrames
mymatr1 = rand(1:100,10,8)
df = DataFrame(mymatr1)
println("表格数据如下所示:")
println(df)
# 10×8 DataFrame
# │ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │
# │ │ Int64 │ Int64 │ Int64 │ Int64 │ Int64 │ Int64 │ Int64 │ Int64 │
# ├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
# │ 2 │ 36 │ 39 │ 18 │ 13 │ 85 │ 86 │ 78 │ 22 │
# │ 3 │ 42 │ 11 │ 62 │ 63 │ 29 │ 23 │ 53 │ 39 │
# │ 4 │ 18 │ 95 │ 72 │ 72 │ 22 │ 31 │ 52 │ 35 │
# │ 5 │ 59 │ 49 │ 28 │ 53 │ 41 │ 18 │ 95 │ 56 │
# │ 6 │ 43 │ 33 │ 70 │ 45 │ 100 │ 48 │ 34 │ 21 │
# │ 7 │ 30 │ 67 │ 12 │ 55 │ 8 │ 23 │ 73 │ 44 │
# │ 8 │ 1 │ 92 │ 4 │ 29 │ 90 │ 92 │ 65 │ 99 │
# │ 9 │ 46 │ 1 │ 44 │ 18 │ 80 │ 58 │ 66 │ 70 │
# │ 10 │ 31 │ 70 │ 1 │ 58 │ 53 │ 78 │ 70 │ 42 │
### 4.2使用describe()函数
mydes = describe(df)
println("测试数据的统计信息如下:")
println(mydes)
# 8×8 DataFrame
# │ Row │ variable │ mean │ min │ median │ max │ nunique │ nmissing │ eltype │
# ├─────┼──────────┼─────────┼───────┼─────────┼───────┼─────────┼──────────┼──────────┤
# │ 1 │ x1 │ 40.1 │ 1 │ 39.0 │ 95 │ │ │ Int64 │
# │ 2 │ x2 │ 52.8 │ 1 │ 58.0 │ 95 │ │ │ Int64 │
# │ 3 │ x3 │ 38.6 │ 1 │ 36.0 │ 75 │ │ │ Int64 │
# │ 4 │ x4 │ 44.2 │ 13 │ 49.0 │ 72 │ │ │ Int64 │
# │ 5 │ x5 │ 51.2 │ 4 │ 47.0 │ 100 │ │ │ Int64 │
# │ 6 │ x6 │ 53.9 │ 18 │ 53.0 │ 92 │ │ │ Int64 │
# │ 7 │ x7 │ 64.5 │ 34 │ 65.5 │ 95 │ │ │ Int64 │
# │ 8 │ x8 │ 44.0 │ 12 │ 40.5 │ 99 │ │ │ Int64 │
## 5.好了,今天就到这里
#@ 苦难和孤独是一个人最好的老师!