Dentistry Equipament Analysis

Introduction

Import Packages


In [1]:
using DataFrames
using Gadfly

Load Data


In [6]:
df = readtable("equipament_list.csv");

Exploratory Data Analysis


In [7]:
showcols(df)


152x5 DataFrames.DataFrame
| Col # | Name      | Eltype     | Missing |
|-------|-----------|------------|---------|
| 1     | Product   | UTF8String | 0       |
| 2     | Qtd       | Int64      | 0       |
| 3     | UnitPrice | Float64    | 0       |
| 4     | Total     | Float64    | 0       |
| 5     | x         | Int64      | 152     |

Eliminated Products

Products with 0 quantity were removed from the list.


In [17]:
eliminated_products = df[df[:Qtd] .== 0, :Product]
print(eliminated_products)


UTF8String["Corte de fio pesado","139 (Bird Beak)","Corte de amarrilho (Quinelato)","Saca banda","Corte distal (Quinelato)","Espátula para cimento","Espelho","Peça de mão","Caneta de alta rotação","Lamparina á álcool","Placa de vidro","Espátula para cera nº 7","Espátula Lecron","Caneta para retro projetor","Disco de caborundum","Pote dappen","Pincel Tigre nº 0","Conjunto de moldeiras (16)","Máquina fotográfica","Aparelho fotopolimerizador","Avental branco para laboratório","Toalha de rosto","Plático comum para forrar bancada","Fio dental","1 rolo de filme de PVC","01 caixa de protetor para seringa tríplice","Tiras de lixas para amálgamas","Material de desinfecção de instrumental","Cola superbonder","Fio de aço .014","Fio de aço .016","Fio de aço .018","Fio para amarrilho 0,30mm (1 rolo)","Borracha macia para lápis","Lapiseira de 0,5 mm","Transferidor 180 (Desetec)","Régua transparente","Papel sulfite 17,5 x 17,5 cm (Chamex) (100)","Fita adesiva (durex)"]

In [20]:
df = df[df[:Qtd] .> 0, :];

In [101]:
size(df)


Out[101]:
(113,5)

Quantity Products Distribution

Overall


In [74]:
set_default_plot_size(800px, 1100px)
levels = Array{AbstractString}(sort(df, cols=[:Qtd])[:Product])
plot(df, x=:Qtd, y=:Product, 
Scale.y_discrete(levels=levels), Geom.bar(orientation=:horizontal),
                 Theme(default_color=colorant"lightgreen"))


Out[74]:
Qtd -10 -8 -6 -4 -2 0 2 4 6 8 10 12 14 16 18 -8.0 -7.5 -7.0 -6.5 -6.0 -5.5 -5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 -10 0 10 20 -8.0 -7.5 -7.0 -6.5 -6.0 -5.5 -5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 Tweed para Ômega (Quinelato) Tweed para fio retangular - curto Tweed para fio retangular - longo Nance Alicate para confeccionar Amarrilhos Metálicos Alicate De La Rosa Tridente Alicate para confeccionar Barra Palatina e Quadrilátero n. 410 (Quinelato) Alicate n. 074 Removedor de bráquetes (curvo) *Conformador de banda posterior Adaptador de gancho ponta bola (Zatty) How reto Torque individual (Com chave - Zatty) Torre para contorneamento de fio retangular (Uniden) Tesoura para ouro (curva) Fava Compasso com 2 pontas secas Pinça (1) Bandeja - Branca Micromotor Mandris para micromotor (1) KaVo Disco dupla face de diamantado (pequeno) Disco monoface (médio) Pedras abarsivas Mizzy para mandril Pedra montada para acrílico Brocas multilaminadas para remoção de resina Taça de borraçha para profilaxia azul Gral de borracha Espátula para alginato/gesso azul Tensiômetro (50-1600 grs) Diagrama de Interlandi Máquina de solda Conjunto Edgewise - 1 cartela de 7 a 7 Anel elástico para ligaduras (bengalinha) - 1 pacote Cera rosa nº 7 (1 caixa) Guancho ponta bola (1 caixa) Caixa para bandas Morelli (Vermelha) Mola aberta - nitinol Mola fechada Botões para colagem (1 pacote) Cimento de Ionômero de Vidro Resina Fotopolimerizável para colagem (Ortocem) Ácido para condicionamento do esmalte Sugador descartável Roletes de algodão Máscaras Gorros Luvas descartáveis Elástico de 1/8 (leve) Elástico de 1/8 (médio) Elástico de 1/8 (pesado) Elástico de 3/16 (leve) Elástico de 3/16 (médio) Elástico de 3/16 (pesado) Elástico de 5/16 (leve) Elástico de 5/16 (médio) Elástico de 5/16 (pesado) Elástico de 1/4 (leve) Elástico de 1/4 (médio) Elástico de 1/4 (pesado) Elástico de 1/2 (leve) Elástico de 1/2 (médio) Elástico de 1/2 (pesado) Separador Elástico Casquete para AEB tipo interlandi (M) Tala para AEB Casquete para AEB puxada alta (M) Fio 0.019 x 0.019 Elgiloy azul (10) Fio Nitinol 0.012 superior (10) Fio Nitinol 0.012 inferior (10) Fio Nitinol 0.014 superior (10) Fio Nitinol 0.014 inferior (10) Fio Nitinol 0.018 superior (10) Fio Nitinol 0.018 inferior (10) Fio Nitinol 0.020 superior (10) Fio Nitinol 0.020 inferior (10) Fio Nitinol 0.017 x 0.025 superior (10) Fio Nitinol 0.017 x 0.025 inferior (10) Fio Nitinol 0.014 superior (10) - com curva spee Fio Nitinol 0.014 inferior (10) - com curva spee Fio Nitinol 0.018 superior (10) - com curva spee Fio Nitinol 0.018 inferior (10) - com curva spee Fio Nitinol 0.020 superior (10) - com curva spee Fio Nitinol 0.020 inferior (10) - com curva spee Retangulares de aço .016 x 022 Retangulares de aço .017 x 025 Retangulares de aço .018 x 025 Retangulares de aço .019 x 025 Fio 08mm para barra palatina (Morelli) Fio 17 x 25 TMA Fio 0.8mm TMA Pasta para soldagem de prata (fluxo) Solda de prata Fio de latão 0,7mm Miniflan (Blazer) Gás para isqueiro Papel Ultraphan 17,5 x 17,5 cm (100) Estrela de Boone (2,5 para cima) (2) Estrela de Boone (3,5 para cima) (2) Afastadores labiais - 2 adultos e 2 infantis (Transparente) Conjunto Roth (Técnica Straight Wire) - 2 cartelas de 7 a 7 (Morelli) Tubo lingual para soldagem Alastic em cadeia - 1 rolo curto e médio Arco Facial (Morelli) AR-02ZW para AEB - (2) Máscara de Petit (tração reversa) (2) Fio 17 x 25 braided (importado) Fio 19 x 25 braided (importado) Sonda exploradora (3) Porta agulha tipo "Mathieu" (4) Calcador de base triangular (4) Pinça para colagem de bráquetes (6) Zatty Instrumento para dobrar ponta de amarrilho metálico (6) Fava Adaptador de amarrilho elástico (Azul - 7) Product

Unique Products


In [44]:
for (i, p) in enumerate(df[df[:Qtd] .== 1, :Product])
    println("$i. $p") 
end


1. Tweed para Ômega (Quinelato)
2. Tweed para fio retangular - curto
3. Tweed para fio retangular - longo
4. Nance
5. Alicate para confeccionar Amarrilhos Metálicos
6. Alicate De La Rosa
7. Tridente
8. Alicate para confeccionar Barra Palatina e Quadrilátero n. 410 (Quinelato)
9. Alicate n. 074
10. Removedor de bráquetes (curvo)
11. *Conformador de banda posterior
12. Adaptador de gancho ponta bola (Zatty)
13. How reto
14. Torque individual (Com chave - Zatty)
15. Torre para contorneamento de fio retangular (Uniden)
16. Tesoura para ouro (curva) Fava
17. Compasso com 2 pontas secas
18. Pinça (1)
19. Bandeja - Branca
20. Micromotor
21. Mandris para micromotor (1) KaVo
22. Disco dupla face de diamantado (pequeno)
23. Disco monoface (médio)
24. Pedras abarsivas Mizzy para mandril
25. Pedra montada para acrílico
26. Brocas multilaminadas para remoção de resina
27. Taça de borraçha para profilaxia azul
28. Gral de borracha
29. Espátula para alginato/gesso azul
30. Tensiômetro (50-1600 grs)
31. Diagrama de Interlandi
32. Máquina de solda
33. Conjunto Edgewise - 1 cartela de 7 a 7
34. Anel elástico para ligaduras (bengalinha) - 1 pacote
35. Cera rosa nº 7 (1 caixa)
36. Guancho ponta bola (1 caixa)
37. Caixa para bandas Morelli (Vermelha)
38. Mola aberta - nitinol
39. Mola fechada
40. Botões para colagem (1 pacote)
41. Cimento de Ionômero de Vidro
42. Resina Fotopolimerizável para colagem (Ortocem)
43. Ácido para condicionamento do esmalte
44. Sugador descartável
45. Roletes de algodão
46. Máscaras
47. Gorros
48. Luvas descartáveis
49. Elástico de 1/8 (leve)
50. Elástico de 1/8 (médio)
51. Elástico de 1/8 (pesado)
52. Elástico de 3/16 (leve)
53. Elástico de 3/16 (médio)
54. Elástico de 3/16 (pesado)
55. Elástico de 5/16 (leve)
56. Elástico de 5/16 (médio)
57. Elástico de 5/16 (pesado)
58. Elástico de 1/4 (leve)
59. Elástico de 1/4 (médio)
60. Elástico de 1/4 (pesado)
61. Elástico de 1/2 (leve)
62. Elástico de 1/2 (médio)
63. Elástico de 1/2 (pesado)
64. Separador Elástico
65. Casquete para AEB tipo interlandi (M)
66. Tala para AEB
67. Casquete para AEB puxada alta (M)
68. Fio 0.019 x 0.019 Elgiloy azul (10)
69. Fio Nitinol 0.012 superior (10)
70. Fio Nitinol 0.012  inferior (10)
71. Fio Nitinol 0.014 superior (10)
72. Fio Nitinol 0.014  inferior (10)
73. Fio Nitinol 0.018 superior (10)
74. Fio Nitinol 0.018  inferior (10)
75. Fio Nitinol 0.020 superior (10)
76. Fio Nitinol 0.020  inferior (10)
77. Fio Nitinol 0.017 x 0.025 superior (10)
78. Fio Nitinol 0.017 x 0.025 inferior (10)
79. Fio Nitinol 0.014  superior (10) - com curva spee
80. Fio Nitinol 0.014  inferior (10) - com curva spee
81. Fio Nitinol 0.018 superior (10) - com curva spee
82. Fio Nitinol 0.018  inferior (10)  - com curva spee
83. Fio Nitinol 0.020 superior (10) - com curva spee
84. Fio Nitinol 0.020  inferior (10) - com curva spee
85. Retangulares de aço .016 x 022
86. Retangulares de aço .017 x 025
87. Retangulares de aço .018 x 025
88. Retangulares de aço .019 x 025
89. Fio 08mm para barra palatina (Morelli)
90. Fio 17 x 25 TMA
91. Fio 0.8mm TMA
92. Pasta para soldagem de prata (fluxo)
93. Solda de prata
94. Fio de latão 0,7mm
95. Miniflan (Blazer)
96. Gás para isqueiro
97. Papel Ultraphan 17,5 x 17,5 cm (100)

Recorrent Products


In [75]:
set_default_plot_size(800px, 300px)
levels = Array{AbstractString}(sort(df, cols=[:Qtd])[:Product])
plot(df[df[:Qtd] .> 1, :], x=:Qtd, y=:Product,
     Scale.y_discrete(levels=levels), 
     Geom.bar(orientation=:horizontal), Theme(default_color=colorant"orange"))


Out[75]:
Qtd -10 -8 -6 -4 -2 0 2 4 6 8 10 12 14 16 18 -8.0 -7.5 -7.0 -6.5 -6.0 -5.5 -5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 -10 0 10 20 -8.0 -7.5 -7.0 -6.5 -6.0 -5.5 -5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 Estrela de Boone (2,5 para cima) (2) Estrela de Boone (3,5 para cima) (2) Afastadores labiais - 2 adultos e 2 infantis (Transparente) Conjunto Roth (Técnica Straight Wire) - 2 cartelas de 7 a 7 (Morelli) Tubo lingual para soldagem Alastic em cadeia - 1 rolo curto e médio Arco Facial (Morelli) AR-02ZW para AEB - (2) Máscara de Petit (tração reversa) (2) Fio 17 x 25 braided (importado) Fio 19 x 25 braided (importado) Sonda exploradora (3) Porta agulha tipo "Mathieu" (4) Calcador de base triangular (4) Pinça para colagem de bráquetes (6) Zatty Instrumento para dobrar ponta de amarrilho metálico (6) Fava Adaptador de amarrilho elástico (Azul - 7) Product

Price Products Distribution


In [97]:
set_default_plot_size(800px, 1100px)
levels = Array{AbstractString}(sort(df, cols=[:UnitPrice])[:Product])
plot(df, 
layer(xintercept=[40], Geom.vline, Theme(default_color=colorant"lightgreen", line_width=3px)),
     layer(x=:UnitPrice, y=:Product, Geom.bar(orientation=:horizontal)),
     Scale.y_discrete(levels=levels),
     Theme(default_color=colorant"red"))


Out[97]:
UnitPrice -1000 -800 -600 -400 -200 0 200 400 600 800 1000 1200 1400 1600 1800 -800 -750 -700 -650 -600 -550 -500 -450 -400 -350 -300 -250 -200 -150 -100 -50 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 1050 1100 1150 1200 1250 1300 1350 1400 1450 1500 1550 1600 -1000 0 1000 2000 -800 -750 -700 -650 -600 -550 -500 -450 -400 -350 -300 -250 -200 -150 -100 -50 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 1050 1100 1150 1200 1250 1300 1350 1400 1450 1500 1550 1600 Roletes de algodão Espátula para alginato/gesso azul Fio de latão 0,7mm Pedras abarsivas Mizzy para mandril Pedra montada para acrílico Pasta para soldagem de prata (fluxo) Gral de borracha Gorros Anel elástico para ligaduras (bengalinha) - 1 pacote Elástico de 1/8 (leve) Elástico de 1/8 (médio) Elástico de 1/8 (pesado) Elástico de 1/2 (leve) Mola fechada Instrumento para dobrar ponta de amarrilho metálico (6) Fava Pinça (1) Elástico de 3/16 (leve) Elástico de 3/16 (médio) Elástico de 3/16 (pesado) Elástico de 1/2 (médio) Sonda exploradora (3) Ácido para condicionamento do esmalte Calcador de base triangular (4) Tubo lingual para soldagem Elástico de 1/4 (leve) Elástico de 1/4 (médio) Elástico de 1/4 (pesado) Elástico de 1/2 (pesado) Separador Elástico Fio 08mm para barra palatina (Morelli) Sugador descartável Tala para AEB Botões para colagem (1 pacote) Elástico de 5/16 (leve) Elástico de 5/16 (médio) Elástico de 5/16 (pesado) Taça de borraçha para profilaxia azul Adaptador de amarrilho elástico (Azul - 7) Bandeja - Branca Retangulares de aço .016 x 022 Retangulares de aço .017 x 025 Retangulares de aço .018 x 025 Retangulares de aço .019 x 025 Máscaras Guancho ponta bola (1 caixa) Fio Nitinol 0.012 superior (10) Fio Nitinol 0.012 inferior (10) Fio Nitinol 0.014 superior (10) Fio Nitinol 0.014 inferior (10) Fio Nitinol 0.018 superior (10) Fio Nitinol 0.018 inferior (10) Fio Nitinol 0.020 superior (10) Fio Nitinol 0.020 inferior (10) Cera rosa nº 7 (1 caixa) Gás para isqueiro Tesoura para ouro (curva) Fava Conjunto Edgewise - 1 cartela de 7 a 7 Casquete para AEB puxada alta (M) Afastadores labiais - 2 adultos e 2 infantis (Transparente) Luvas descartáveis Pinça para colagem de bráquetes (6) Zatty Fio Nitinol 0.017 x 0.025 superior (10) Fio Nitinol 0.017 x 0.025 inferior (10) Casquete para AEB tipo interlandi (M) Arco Facial (Morelli) AR-02ZW para AEB - (2) Alastic em cadeia - 1 rolo curto e médio Conjunto Roth (Técnica Straight Wire) - 2 cartelas de 7 a 7 (Morelli) Mola aberta - nitinol Fio Nitinol 0.014 superior (10) - com curva spee Fio Nitinol 0.014 inferior (10) - com curva spee Fio Nitinol 0.018 superior (10) - com curva spee Fio Nitinol 0.018 inferior (10) - com curva spee Fio Nitinol 0.020 superior (10) - com curva spee Fio Nitinol 0.020 inferior (10) - com curva spee Estrela de Boone (2,5 para cima) (2) Estrela de Boone (3,5 para cima) (2) Mandris para micromotor (1) KaVo Papel Ultraphan 17,5 x 17,5 cm (100) Porta agulha tipo "Mathieu" (4) Máscara de Petit (tração reversa) (2) Fio 17 x 25 TMA Fio 17 x 25 braided (importado) Fio 19 x 25 braided (importado) Solda de prata Brocas multilaminadas para remoção de resina Diagrama de Interlandi Compasso com 2 pontas secas Cimento de Ionômero de Vidro Tweed para fio retangular - curto Tweed para fio retangular - longo Nance Alicate para confeccionar Amarrilhos Metálicos Alicate De La Rosa Tridente Alicate n. 074 Removedor de bráquetes (curvo) How reto Resina Fotopolimerizável para colagem (Ortocem) Fio 0.8mm TMA Adaptador de gancho ponta bola (Zatty) *Conformador de banda posterior Tensiômetro (50-1600 grs) Disco dupla face de diamantado (pequeno) Disco monoface (médio) Torre para contorneamento de fio retangular (Uniden) Miniflan (Blazer) Torque individual (Com chave - Zatty) Alicate para confeccionar Barra Palatina e Quadrilátero n. 410 (Quinelato) Fio 0.019 x 0.019 Elgiloy azul (10) Tweed para Ômega (Quinelato) Caixa para bandas Morelli (Vermelha) Máquina de solda Micromotor Product

Items more expensives


In [100]:
sum(df[df[:UnitPrice] .> 40, :UnitPrice])


Out[100]:
3714.1600000000003

In [105]:
sort(df, cols=[:UnitPrice], rev=true)[1:10, [:Product, :UnitPrice]]


Out[105]:
ProductUnitPrice
1Micromotor730.0
2Máquina de solda529.0
3Caixa para bandas Morelli (Vermelha)234.0
4Tweed para Ômega (Quinelato)167.1
5Fio 0.019 x 0.019 Elgiloy azul (10)159.0
6Alicate para confeccionar Barra Palatina e Quadrilátero n. 410 (Quinelato)137.0
7Torque individual (Com chave - Zatty)136.0
8Miniflan (Blazer)114.9
9Torre para contorneamento de fio retangular (Uniden)101.75
10Disco dupla face de diamantado (pequeno)99.9

In [112]:
top_10_values = sum(sort(df, cols=[:UnitPrice], rev=true)[1:10, :UnitPrice])
total_value = df[:Qtd]' * df[:UnitPrice]
print("Top 10: $top_10_values ($(round(top_10_values/total_value[1]*100, 2))%)")


Top 10: 2408.65 (43.61%)