【Pythonデータ分析基礎】ピットに必要なデータの前処理操作


本稿では、2つのターゲットビジネスについて説明します.
  • データ分析の操作方法が分からないデータがあります.
  • 自分でどのように実現したのか分からない考えがあります.

  • Pythonデータ分析基礎必需品
  • officeソフトウェア(2016版推奨)
  • Python開発環境(Anacondaを推奨し、初心者に優しい)
  • 記憶に残るデータ分析ルート
  • は、分析が必要なデータ・フォームを生成するか、データベースから抽出するかを収集する.
  • データ基礎情報チェック.
  • データテーブル洗浄&前処理.
  • 有効データ特徴フィルタ&抽出.
  • データ統計分類&要約&ピボット.
  • アルゴリズムモデル応用
  • 逐一解説分析を行い,重点を置く
  • は、分析が必要なデータ・フォームを生成するか、データベースから抽出するかを収集する.

  • Pythonは、さまざまなタイプのデータのインポートをサポートします.pandasライブラリをインポートし、numpyライブラリをインポートする必要があります.
    import pandas as pd
    import numpy as np
    

    pandasを使用したフォームのインポート
    df=pd.DataFrame(pd.read_csv('table.csv',header=1))
    df=pd.DataFrame(pd.read_excel('table.xlsx'))
    
  • データ基礎情報チェック.
  • #        
    df.shape
    #     
    df.info()
    #         
    df.dtypes
    #      
    df.isnull()
    #       
    df['column_name'].isnull()
    #   city       
    df['column_name'].unique()
    #       
    df.values
    #     
    df.columns
    #    0    
    df.head(0)
    #    0    
    df.tail(0)
    
  • データテーブル洗浄&前処理.
  • #            
    df.dropna(how='any')
    #     0         
    df.fillna(value=0)
    #   column_name     NA     
    df['column_name'].fillna(df['column_name'].mean())
    #   column_name         
    df['column_name']=df['column_name'].map(str.strip)
    #column_name       
    df['column_name']=df['column_name'].str.lower()
    #      
    df['column_name'].astype('int')
    #     
    df.rename(columns={
         'column_name': 'new_column_name'})
    #         
    df['column_name'].drop_duplicates()
    #    
    df['column_name'].replace('python', 'Python')
    #       ,inner   
    df_inner=pd.merge(df,df,how='inner')
    #     
    df_inner.set_index('column_name')
    #        
    df_inner.sort_values(by=['column_name'])
    #      
    df_inner.sort_index()
    #     
    #    column_name    >3000,group     high,     low
    df_inner['column_name'] = np.where(df_inner['column_name'] > 3000,'high','low')
    #                
    df_inner.loc[(df_inner['column_name'] == 'Python') & (df_inner['column_name'] >= 4000), 'sign']=1
    #    
    #  column_name           ,      ,     df_inner     ,     column_name   column_name_size
    pd.DataFrame((x.split('-') for x in df_inner['column_name']),index=df_inner.index,columns=['column_name','column_name_size'])
    #             df_inner        
    df_inner=pd.merge(df_inner,split,right_index=True, left_index=True)
    
  • 有効データ特徴フィルタ&抽出.
  • #          
    df_inner.loc[3]
    #          
    df_inner.loc[0:5]
    #    
    df_inner.reset_index()
    #       
    df_inner=df_inner.set_index('date')
    #   4         
    df_inner[:'03-0-04']
    #   iloc          
    df_inner.iloc[:3,:]
    #   iloc          
    df_inner.iloc[[0,,5],[4,5]]
    #   ix               
    df_inner.ix[:'03-0-03',:4]
    #     (      )
    #   column_name        Python
    df_inner['column_name'].isin(['Python'])
    #       ,      
    pd.DataFrame(category.str[:3])
    #  “ ”      
    df_inner.loc[(df_inner['column_name'] > 5) & (df_inner['column_name'] == 'Python'), 
    #         column_name       
    df_inner.loc[(df_inner['column_name'] > 5) | (df_inner['column_name'] == 'Python'),
    #  “ ”      
    df_inner.loc[(df_inner['column_name'] != 'Python'), ['id','column_name','column_name2','column_name3','column_name4']].sort(['id'])
    #         column_name      
    df_inner.loc[(df_inner['column_name'] != 'Python'), ['id','column_name1,'column_name2','column_name3','column_name4']].sort(['id']).column_name.count()
    #    query       
    df_inner.query('column_name == ["Python", "Java"]')
    #         column_name     
    df_inner.query('column_name == ["Python", "C++"]').column_name.sum()
    
  • データ統計分類&要約&ピボット.
  • #          
    df_inner.groupby('columns_name').count()
    #     ID        
    df_inner.groupby('columns_name')['id'].count()
    #           
    df_inner.groupby(['columns_name','columns_name3'])['id'].count()
    #  columns_name           price       。
    df_inner.groupby('columns_name')['columns_name'].agg([len,np.sum, np.mean])
    #     
    pd.pivot_table(df_inner,index=["columns_name"],values=["columns_name"],columns=["columns_name"],aggfunc=[len,np.sum],fill_value=0,margins=True)
    #       
    df_inner.sample(n=3)
    #        
    weights = [0, 0, 0, 0, 0.5, 0.5]
    df_inner.sample(n=, weights=weights)
    #      
    df_inner.sample(n=6, replace=False)
    #     
    df_inner.sample(n=6, replace=True)
    #        
    df_inner.describe().round().T
    #         
    df_inner['columns_name'].std()
    #         
    df_inner['columns_name'].cov(df_inner['m-point'])
    #         /   
    df_inner['columns_name'].corr(df_inner['m-point'])
    #    CSV   
    df_inner.to_csv('excel_to_python.csv')