A série de 5 postagens para iniciantes é um remix do primeiro capítulo de um livro de 2015 chamado Clojure for Data Science. O autor do livro, Henry Garner, concordou gentilmente em usar os materiais do livro para este remix usando a linguagem Python.
O livro foi escrito como um convite à chamada "ciência de dados", que recebeu um forte impulso nos últimos anos devido à necessidade de processamento rápido e oportuno de grandes conjuntos de dados localmente e em um ambiente distribuído.
O material do livro é apresentado em uma linguagem viva e é apresentado em um estilo orientado a tarefas, principalmente com ênfase na análise de dados usando algoritmos e plataformas de computação apropriados, com explicações curtas e diretas fornecidas ao longo do caminho.
É injusto quando um excelente material educacional junta poeira não reclamada simplesmente pelo fato de ser implementado em uma linguagem bastante acadêmica, senão de elite, como a linguagem de programação funcional Clojure. Portanto, havia o desejo de contribuir com seus cinco copeques para disponibilizar o material do livro a um público mais amplo.
Três capítulos do livro foram adaptados para Python no ano seguinte após a publicação do livro, ou seja, em 2016. A publicação do remix do livro na Federação Russa não deu certo por vários motivos, mas um dos principais ficará claro ao final desta série de posts. No final da postagem final, você pode votar a favor ou contra a próxima série de postagens. Enquanto isso ...
A postagem 1 é sobre como preparar o ambiente e os dados.
Estatisticas
É importante não quem vota, mas quem conta os votos
- Joseph Stalin
, , , . , , , « » « 80/20». . : .
, Python- pandas. , , , numpy . — 2010 . 2011 . — , .
SciPy: SciPy - , pandas , , NumPy .
. SciPy , NumPy , pandas -, - . R Python, REPL, . , .
. - , , :
import numpy as np
import scipy as sp
import pandas as pd
, Python . , , random , collections , Counter.
pandas , DataFrame
, .. , , . , pandas , . , , . pandas , , , , :
(.csv) (.tsv),
read_csv
Excel (, .xls .xlsx),
read_excel
( , -, , JSON-, HTML- . .)
– Series, .. . , , .
Excel, read_excel
. — — , . . . , :
pd.read_excel('data/ch01/UK2010.xls')
, . load_uk
:
def load_uk():
''' '''
return pd.read_excel('data/ch01/UK2010.xls')
DataFrame
pandas, . , .
UK2010.xls . pandas read_excel
. — columns , (.
):
def ex_1_1():
''' '''
return load_uk().columns
pandas:
Index(['Press Association Reference', 'Constituency Name', 'Region',
'Election Year', 'Electorate', 'Votes', 'AC', 'AD', 'AGS', 'APNI',
...
'UKIP', 'UPS', 'UV', 'VCCA', 'Vote', 'Wessex Reg', 'WRP', 'You',
'Youth', 'YRDPL'],
dtype='object', length=144)
, 144 . ; :
: , ( )
: ,
: ,
: ,
: ,
:
, , , . . , , 2010 ., Election Year.
pandas () () . , . :
def ex_1_2():
''' " "'''
return load_uk()['Election Year']
:
0 2010.0
1 2010.0
2 2010.0
...
646 2010.0
647 2010.0
648 2010.0
649 2010.0
650 NaN
Name: Election Year, dtype: float64
. , . , , , unique . pandas , , Python. :
def ex_1_3():
''' " " '''
return load_uk()['Election Year'].unique()
[ 2010. nan]
2010 , 2010 . , nan, . not a number, .. , , .
, , , , . Counter
Python collections
. , , .. :
def ex_1_4():
''' " "
( )'''
return Counter( load_uk()['Election Year'] )
Counter({nan: 1, 2010.0: 650})
, , 2010 . 650 . , , . , , nan , . , , .
, 80% . .
nan , . , pandas , . pandas.
pandas, , . , . , , :
def ex_1_5():
''' " "
( )'''
df = load_uk()
return df[ df['Election Year'].isnull() ]
|
|
Press Association Reference |
Constituency Name |
Region |
Election Year |
Electorate |
Votes |
AC |
AD |
AGS |
... |
650 |
NaN |
NaN |
NaN |
NaN |
NaN |
29687604 |
NaN |
NaN |
NaN |
... |
dt['Election Year'].isnull()
, , , False
, . SQL, , WHERE
.
ex_1_5, , ( ) NaN
. , Excel. . notnull()
, , NaN
:
df = load_uk()
return df[ df[ 'Election Year' ].notnull() ]
. , load_uk_scrubbed
:
def load_uk_scrubbed():
''' '''
df = load_uk()
return df[ df[ 'Election Year' ].notnull() ]
, : load_uk
load_uk_scrubbed
. 650 , .
, . — — , . , , , , , .
Os exemplos de código fonte para este post está no meu Github repo .
A próxima parte, Parte 2 , da série de postagens sobre Python, Ciência de Dados e Opções concentra-se em estatísticas descritivas, agrupamento de dados e distribuição normal. Todas essas informações servirão de base para uma análise mais aprofundada dos dados eleitorais.