La série à 5 publications pour débutants est un remix du premier chapitre d'un livre de 2015 intitulé Clojure for Data Science. L'auteur du livre, Henry Garner, a gentiment accepté d'utiliser les matériaux du livre pour ce remix en utilisant le langage Python.
Le livre a été écrit comme une invitation à la soi-disant «science des données», qui a reçu une forte impulsion ces dernières années en raison de la nécessité de traiter rapidement et en temps opportun de grands ensembles de données localement et dans un environnement distribué.
Le matériel du livre est présenté dans une langue vivante et est présenté dans un style axé sur les tâches, principalement en mettant l'accent sur l'analyse des données à l'aide d'algorithmes et de plates-formes informatiques appropriés, avec des explications courtes et directes fournies en cours de route.
Il est injuste qu'un excellent matériel pédagogique rassemble de la poussière non réclamée simplement parce qu'il est implémenté dans un langage plutôt académique, voire élitiste, comme le langage de programmation fonctionnel Clojure. Par conséquent, il y avait un désir de contribuer leurs cinq kopecks afin de rendre le matériel du livre disponible à un public plus large.
Trois chapitres du livre ont été adaptés pour Python au cours de l'année suivante après la publication du livre, c.-à -d. en 2016. La publication du remix du livre en Fédération de Russie n'a pas fonctionné pour diverses raisons, mais l'une des principales apparaîtra clairement à la fin de cette série d'articles. À la fin du dernier message, vous pouvez voter pour ou contre la prochaine série de messages. En attendant ...
Le message n ° 1 concerne la préparation de l'environnement et des données.
Statistiques
Il est important non pas qui vote, mais qui compte les votes
- Joseph Staline
, , , . , , , « » « 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 , .
, . — — , . , , , , , .
Les exemples de code source pour ce poste sont dans mon Github repo .
La partie suivante, la partie 2 , de la série d' articles Python, Data Science et Choices se concentre sur les statistiques descriptives, le regroupement de données et la distribution normale. Toutes ces informations jetteront les bases d'une analyse plus approfondie des données électorales.