pythonデータ洗浄ツール、方法、プロセス整理まとめ(一、データ洗浄の常用ツールnumpy,pandas)


文書ディレクトリ
  • 背景
  • 2常用工具
  • 2.1 numpy
  • 2.2 pandas

  • 1背景
  • データ洗浄はデータ分析プロセス全体の第一歩であり、データ分析プロジェクト全体で最も時間がかかる一歩でもある.
  • データ分析のプロセスは、データ分析の正確性を決定する.

  • 2一般的なツール
    2.1 numpy
    numpy      :
    
        numpy         ndarray  
          array    ,     array(     )
                  arange/linspace/zeros   
    
    import numpy as np
    #  array    
    arr1 = np.array([-7, 4, 4, 6, 89])
    
    type(arr1)
    
    numpy.ndarray
    
    arr3 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])#    
    
    arr3
    
    array([[ 1,  2,  3,  4],
           [ 5,  6,  7,  8],
           [ 9, 10, 11, 12]])
    
    np.arange(1,10,0.5)#  arange  
    
    array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])
    
    np.linspace(1,10,20,endpoint = True)#      :   ,   ,    
    
    array([ 1.        ,  1.47368421,  1.94736842,  2.42105263,  2.89473684,
            3.36842105,  3.84210526,  4.31578947,  4.78947368,  5.26315789,
            5.73684211,  6.21052632,  6.68421053,  7.15789474,  7.63157895,
            8.10526316,  8.57894737,  9.05263158,  9.52631579, 10.        ])
    
    (10-1)/19
    
    0.47368421052631576
    
    np.zeros([4,5])#  zeros  
    
    array([[0., 0., 0., 0., 0.],
           [0., 0., 0., 0., 0.],
           [0., 0., 0., 0., 0.],
           [0., 0., 0., 0., 0.]])
    
    np.zeros(4)
    
    array([0., 0., 0., 0.])
    
    np.ones([2,3])#  ones  
    
    array([[1., 1., 1.],
           [1., 1., 1.]])
    
    arr3 + 1#      1
    
    array([[ 2,  3,  4,  5],
           [ 6,  7,  8,  9],
           [10, 11, 12, 13]])
    
    arr3.ndim#    
    
    2
    
    arr1.shape#    
    
    (5,)#    :5   
    
    arr3.shape
    
    (3, 4)#    :3 4 
    
    arr3.size#       
    
    12
    
    arr3.dtype#    
    
    dtype('int32')#    
    data2 = ((1.2,2.3,3,4,5.6),(4.5,6.7,34,3.6,5),(2.5,4.6,7.8,8.9,50))#    
    
    data2
    
    ((1.2, 2.3, 3, 4, 5.6), (4.5, 6.7, 34, 3.6, 5), (2.5, 4.6, 7.8, 8.9, 50))
    
    arr2 = np.array(data2)
    
    arr2
    
    array([[ 1.2,  2.3,  3. ,  4. ,  5.6],
           [ 4.5,  6.7, 34. ,  3.6,  5. ],
           [ 2.5,  4.6,  7.8,  8.9, 50. ]])
    
    arr2[0]#     
    
    array([1.2, 2.3, 3. , 4. , 5.6])
    
    arr2[0:3]
    
    array([[ 1.2,  2.3,  3. ,  4. ,  5.6],
           [ 4.5,  6.7, 34. ,  3.6,  5. ],
           [ 2.5,  4.6,  7.8,  8.9, 50. ]])
    
    arr2[1:3]
    
    array([[ 4.5,  6.7, 34. ,  3.6,  5. ],
           [ 2.5,  4.6,  7.8,  8.9, 50. ]])
    
    arr2[1,3]#   ,   
    
    3.6
    
    arr2[1][3]#   ,   
    
    3.6
    
    arr2[:,3]#   
    
    array([4. , 3.6, 8.9])
    
    arr2[:,1:3]#       
    
    array([[ 2.3,  3. ],
           [ 6.7, 34. ],
           [ 4.6,  7.8]])#  
    s = np.array([1,2,4,3,6,5,90,67,54,32,12,9,7])
    
    np.sort(s)#        
    
    array([ 1,  2,  3,  4,  5,  6,  7,  9, 12, 32, 54, 67, 90])
    
    s
    
    array([ 1,  2,  4,  3,  6,  5, 90, 67, 54, 32, 12,  9,  7])
    
    s = np.sort(s)
    
    s
    
    array([ 1,  2,  3,  4,  5,  6,  7,  9, 12, 32, 54, 67, 90])
    
    sorted(s,reverse=True)
    
    [90, 67, 54, 32, 12, 9, 7, 6, 5, 4, 3, 2, 1]
    
    np.array(sorted(s,reverse=True))
    
    array([90, 67, 54, 32, 12,  9,  7,  6,  5,  4,  3,  2,  1])
    
    np.argsort(s)
    
    array([ 0,  1,  3,  2,  5,  4, 12, 11, 10,  9,  8,  7,  6], dtype=int64)
    
    s
    
    array([ 1,  2,  4,  3,  6,  5, 90, 67, 54, 32, 12,  9,  7])
    
    #      
    
    arr1 = np.array([[0,1,3,],[4,2,9],[4,5,9],[1,-3,4]])
    
    np.sort(arr1,axis = 0)#axis=0         ;axis=1         
    
    array([[ 0, -3,  3],
           [ 1,  1,  4],
           [ 4,  2,  9],
           [ 4,  5,  9]])
    
    np.sort(arr1,axis = 1)#axis=0         ;axis=1         
    
    array([[ 0,  1,  3],
           [ 2,  4,  9],
           [ 4,  5,  9],
           [-3,  1,  4]])
    
    ​
    
    s
    
    array([ 1,  2,  4,  3,  6,  5, 90, 67, 54, 32, 12,  9,  7])
    
    np.where(s>7,1,-1)#  7  1,    -1
    
    array([-1, -1, -1, -1, -1, -1,  1,  1,  1,  1,  1,  1, -1])
    
    np.where(s>7,s,-1)
    
    array([-1, -1, -1, -1, -1, -1, 90, 67, 54, 32, 12,  9, -1])
    
    np.where(s>7,1,-4)
    
    array([-4, -4, -4, -4, -4, -4,  1,  1,  1,  1,  1,  1, -4])
    
    np.extract(s>7,s)#   s>7   
    
    array([90, 67, 54, 32, 12,  9])

    2.2 pandas
    #     (series)
    
    import pandas as pd
    
    series1 = pd.Series([2.8,3.01,8.99,8.58,5.18])
    
    series1
    
    0    2.80
    1    3.01
    2    8.99
    3    8.58
    4    5.18
    dtype: float64
    
    type(series1)#  
    
    pandas.core.series.Series
    
    series2 = pd.Series([2.8,3.01,8.99,8.58,5.18],index=['a','b','c','d','e'],name='      ')
    
    series2
    
    a    2.80
    b    3.01
    c    8.99
    d    8.58
    e    5.18
    Name:       , dtype: float64
    
    series3 = pd.Series({'  ':2.8,'  ':3.01,'  ':8.99,'  ':9.73,'  ':5.18})#   
    
    series3
    
          2.80
          3.01
          8.99
          9.73
          5.18
    dtype: float64
    
    series3[0:3]#    
    
          2.80
          3.01
          8.99
    dtype: float64
    
    series3['  ':'  ']#    
    
          2.80
          3.01
          8.99
          9.73
    dtype: float64
    
    series1.values#     
    
    array([2.8 , 3.01, 8.99, 8.58, 5.18])
    
    series3.index
    
    ​
    
    Index(['  ', '  ', '  ', '  ', '  '], dtype='object')
    
    series1.index
    
    RangeIndex(start=0, stop=5, step=1)
    
    series1.dtype
    
    dtype('float64')
    
    dataframe
    
    list1 = [['  ',23,' '],['  ',27,' '],['  ',26,' ']]#      
    
    df1 = pd.DataFrame(list1,columns=['  ','  ','  '])
    
    df1.head(5)
    
    	   	   	  
    0 	   	23 	 
    1 	   	27 	 
    2 	   	26 	 
    
    df2 = pd.DataFrame({'  ':['  ','  ','  '],'  ':[23,24,26],'  ':[' ',' ',' '],})#    
    
    df2.head(5)
    
    	   	   	  
    0 	   	23 	 
    1 	   	24 	 
    2 	   	26 	 
    
    array1 = np.array([['  ',23,' '],['  ',27,' '],['  ',26,' ']])
    
    df3 = pd.DataFrame(array1,columns=['  ','  ','  '],index=['a','b','c'])#    
    
    df3
    
    	   	   	  
    a 	   	23 	 
    b 	   	27 	 
    c 	   	26 	 
    
    df3.values
    
    array([['  ', '23', ' '],
           ['  ', '27', ' '],
           ['  ', '26', ' ']], dtype=object)
    
    df3.index
    
    Index(['a', 'b', 'c'], dtype='object')
    
    df3.columns
    
    Index(['  ', '  ', '  '], dtype='object')
    
    df3.columns.tolist()#     
    
    ['  ', '  ', '  ']
    
    df3.ndim
    
    2
    
    series1.ndim
    
    1
    
    df2.shape
    
    (3, 3)
    
    series1.shape
    
    (5,)
    
    df3.size
    
    9
    
    df3.dtypes
    
          object
          object
          object
    dtype: object
    
    df2.dtypes
    
          object
           int64
          object
    dtype: object
    
    
    
    

    seriesとdataframeの一般的な方法は以下の通りです.
    メソッド名
    説明
    values
    オブジェクトのすべての要素の値を返します.
    index
    ローインデックスを返す
    dtypes
    戻りタイプ
    shape
    オブジェクトデータ形状を返す
    ndim
    オブジェクトの次元を返します
    size
    オブジェクトの数を返します
    columns
    カラムラベルを返します(dataframeデータ構造のみ)
    データ洗浄シリーズの文章をお読みください:pythonデータ洗浄ツール、方法、プロセス整理まとめ
  • 一、データ洗浄の常用工具——numpy,pandas
  • 二、データ洗浄のファイル読み書き——csv、ExcelとMySQLデータ
  • を読み取る
  • 三、データ洗浄のデータテーブル操作——データフィルタリング、削除の増加、修正の検索、データ整理と階層化インデックス
  • 四、データ洗浄のデータ変換——日付フォーマットデータ処理、高次関数データ処理、文字列データ処理
  • .
  • 五、データ洗浄のデータ統計——データパケット演算、集約関数使用、パケットオブジェクトとapply関数、パースビューとクロステーブル
  • 六、データ洗浄のデータ前処理(一)——重複値処理、欠落値処理
  • 七、データ洗浄のデータ前処理(二)——異常値処理、データ離散化処理
  • .
  • 8、総括