Python, Data Science und Auswahlmöglichkeiten: Teil 1

Die 5-Post-Serie fĂŒr AnfĂ€nger ist ein Remix des ersten Kapitels eines 2015 erschienenen Buches namens Clojure for Data Science. Der Autor des Buches, Henry Garner, hat freundlicherweise zugestimmt, die Materialien des Buches fĂŒr diesen Remix in der Python-Sprache zu verwenden.





Das Buch wurde als Einladung zur sogenannten "Data Science" verfasst, die in den letzten Jahren aufgrund der Notwendigkeit einer schnellen und zeitnahen Verarbeitung großer Datenmengen vor Ort und in einer verteilten Umgebung starke Impulse erhalten hat.





Das Material des Buches wird in einer lebendigen Sprache prÀsentiert und in einem aufgabenorientierten Stil prÀsentiert, wobei der Schwerpunkt auf der Datenanalyse unter Verwendung geeigneter Algorithmen und Computerplattformen liegt. Dabei werden kurze und direkte ErklÀrungen gegeben.





Es ist unfair, wenn exzellentes Lehrmaterial Staub sammelt, der nicht beansprucht wird, nur weil es in einer eher akademischen, wenn nicht elitĂ€ren Sprache wie der funktionalen Programmiersprache Clojure implementiert ist. Daher bestand der Wunsch, ihre fĂŒnf Kopeken beizusteuern, um das Material des Buches einer breiteren Öffentlichkeit zugĂ€nglich zu machen.





Drei Kapitel des Buches wurden im nĂ€chsten Jahr nach Veröffentlichung des Buches fĂŒr Python angepasst, d. H. im Jahr 2016. Die Veröffentlichung des Remixes des Buches in der Russischen Föderation hat aus verschiedenen GrĂŒnden nicht geklappt, aber einer der wichtigsten wird am Ende dieser Reihe von BeitrĂ€gen klar werden. Am Ende des letzten Beitrags können Sie fĂŒr oder gegen die nĂ€chste Reihe von BeitrĂ€gen stimmen. In der Zwischenzeit ...





In Beitrag Nr. 1 geht es um die Vorbereitung der Umgebung und der Daten.





Statistiken

 Es ist nicht wichtig, wer abstimmt, sondern wer die Stimmen zĂ€hlt





- 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 , .





, . — — , . , , , , , .





Die Quellcodebeispiele fĂŒr diesen Beitrag befinden sich in meinem Github- Repo .





Der nĂ€chste Teil, Teil 2 , der Post-Reihe Python, Data Science und Choices konzentriert sich auf deskriptive Statistiken, Datengruppierung und Normalverteilung. All diese Informationen bilden die Grundlage fĂŒr die weitere Analyse der Wahldaten.








All Articles