1. 程式人生 > 實用技巧 >資料開發_Python資料預處理_Pandas案例(二)

資料開發_Python資料預處理_Pandas案例(二)

說明

1.資料預處理
   資料預處理中清洗資料,是重塑資料的步驟之一,將一些不符合程式輸入的資料整理成符合相應模式的資料
   資料重塑能力
 2.一些符號說明
    import pandas as pd
    df 是一個數據框  eg:
     df = pd.DataFrame({
     'col_1_nm':['11','22'],
     'col_2_nm':['da','dd']
     })

資料型別轉換

資料型別
   Pandas型別 object    int64   float64  datetime64  
   Python型別 str    int  float datetime
函式
    Numpy和Pandas的檢視方式略有不同,一個是 dtype,一個是dtypes
   pandas方法   df.dtype  df.info  size  values index
   Python中函式 type()
-- 讀取資料指定型別
df.astype() 強制轉換
pd.to_numeric()
pd.to_datetime()

缺失值

  1.缺失值來源: 來源於資料來源
              來源於資料操作 merge() 等操作
	 來源於資料操作的情況
	  01. mid_data = pd.merge(exm_input, sap_input, left_on='field_code', right_on='field_code', how='left')
	  02.兩個資料框
	     df.append(df2)
	     pd.concat(, axis=1)  pd.concat(, axis=0)
  2.缺失值處理
   數值型和字串型轉換經常遇到空值 / NaN值處理
    1. 刪除缺失值:dropna函式    df.dropna(how='all')   df.dropna(axis='columns')  NA的閾值。引數thresh=2,表示行/列中的NA數量大於2才刪除
    2. 替換缺失值:fillna函式
	        設定每列NA的填充值。value為字典格式	
            values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
            df.fillna(value=values)
			生成字典
			   pd.isna(data) and isinstance(data, np.int64):
    3. 判斷缺失值:isna函式
    4. 判斷缺失值:notna函式
  缺失值在資料型別轉換過程中的問題
      ValueError: cannot convert float NaN to integer

pandas展示

-- pandas在進行資料展示時,展示所有列
pd.set_option('display.max_columns', None)
pd.get_option('display.max_rows')
pd.get_option('display.max_columns')

重複值和異常值處理

 1.重複值:
   判斷是否重複,
     and(df.duplicated())  any(df.duplicated(subset = ['price','cnt']))
   以及如何處理重複資料: 去重 合併
      去重:  drop_duplicats()
	  數keep
        keep可以為first和last,表示是選擇最前一項還是最後一項保留,預設first,
		還有一個是 False   - False : Drop all duplicates.	    
 2.異常值
    異常值發現

向量化程式設計

  向量化程式設計

案例程式碼

  拼接SQL的資料

參考:

  https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html