Python、データサイエンス、および選択:パート1

5-ポストシリーズのための 初心者は、データ・サイエンスのためのClojureと呼ばれる2015本の最初の章のリミックスです。この本の著者であるHenryGarnerは、Python言語を使用したこのリミックスに本の資料を使用することに親切に同意しました。





この本は、いわゆる「データサイエンス」への招待状として書かれました。この本は、ローカルおよび分散環境での大規模なデータセットの高速かつタイムリーな処理の必要性から、近年大きな推進力を受けています。





この本の内容は生きた言語で提示され、タスク指向のスタイルで提示され、主に適切なアルゴリズムとコンピューティングプラットフォームを使用したデータ分析に重点が置かれ、途中で短く直接的な説明が提供されます。





関数型プログラミング言語Clojureのようなエリート言語ではないにしても、かなりアカデミックな言語で実装されているという事実だけで、優れた教材が主張されていないほこりを集めるのは不公平です。そのため、本の資料をより多くの人に公開するために、5つのコペイカ銀貨を寄贈したいという要望がありました。





この本の3つの章は、本が出版された後の翌年にPythonに適合しました。2016年に。ロシア連邦での本のリミックスの出版はさまざまな理由でうまくいきませんでしたが、主要なものの1つはこの一連の投稿の終わりに明らかになります。最終投稿の最後に、次の一連の投稿に賛成または反対票を投じることができます。その間 ...





投稿#1は、環境とデータの準備に関するものです。





統計

 誰が投票するかではなく、誰が投票を数えるかが重要です





-ヨシフ・スターリン





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





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





この投稿のソースコードの例は、私のGithubリポジトリにあります。





Python、データサイエンス、および選択肢の投稿シリーズの次のパート、パート2は、記述統計、データグループ化、および正規分布に焦点を当てています。このすべての情報は、選挙データのさらなる分析の基礎を築きます。








All Articles