python 데이터 분석 및 모델링 실현 - 첫 번째 노트

python 데이터 분석 및 모델링 실현 - 첫 번째 노트
처음 블로그를 쓰는데 안 좋은 점이 있으면 양해해 주시고 좋아해 주셨으면 좋겠습니다.1. 데이터 읽기 - 2.데이터 처리 -- 2.1.이상 값(빈 값) 처리 - 2.1.1 삭제 - 2.1.2 지칭 - 3.4분의 1로 이상치 제거 - 4.정적 구조 분석 - 5.데이터 파티션 간 - 6.영문 이상값 데이터 처리 - 7.비교 분석
전언
먼저 우리는 데이터 분석을 하고 가장 과학적이고 진실한 결론을 얻으려면 반드시 좋은 데이터가 있어야 한다.실제로 우리가 직면하는 것은 모두 복잡하고 변화가 많은 데이터이기 때문에 반드시 강력한 데이터 처리 능력을 가져야 한다. 다음에 나는 우리가 직면한 가장 진실한 상황에서 한 걸음 한 걸음 여러분에게 어떻게 하는지 가르쳐 드리겠습니다.
1. 데이터 읽기
1)    
Import pandas as pd 
Import numpy as np
(2)         
df = pd.read_csv(".data/HR.csv")
(3)         
sl_s=df["sactisfaction_level"]

2. 데이터 처리
2.1.예외 값(빈 값) 처리
2.1.1 삭제
우선, 첫 번째 단계는 빈 값을 처리하는 것이다.두 가지가 있는데, 하나는 직접 삭제하고, 다른 하나는 지칭한다.데이터가 많으면 간단하게 하려면 바로 삭제하는 방법도 간단하다.
  ,    DataFrame 
1.          :
df.isnull()          #      ,  True
2.  
df.dropna()          #       
                   subset  
df.dropna(subset=["B"])    #  B       
          :
df.duplicated(["A"])      #A          True
  A      
df.drop_duplicates(["A"])
df.drop_duplicates(["A"],keep=False)   #  A        
df.drop_duplicates(["A"],keep=first)   #  A        ,     
df.drop_duplicates(["A"],keep=last)    #  A        ,      


2.1.2 지칭
일부 데이터는 매우 중요하기 때문에 삭제할 수 없다. 그러면 우리는 지칭, 즉 교체를 선택한다
#          “b*”
df.fillna("b*")
#E                     
df.fillna(df["E"].mean())
#    
             ,                  
           ,        ( + )/2  
df["E"].interpolate()   
#3       order           
df["E"].interpolate(method="spline",order=3)


* 함수
4)     (     True)            --isnull()
sl_s.isnull()
        
(5)                        
sl_s[sl_s.isnull()]
(6)            
df[df["sactisfaction_level"].isnull()]
(7)                              --dropna()
sl_s=sl_s.dropna()
 :        
    where()       ,    dropna()  
(8)                              --fillna()
sl_s=sl_s.fillna()
(9)                                --mean()
sl_s.mean()
(10)                               --std()
Sl_s.std()
(11)                               --max()
sl_s.max()
(12)                               --min()
sl_s.min()
(13)                               --median()
sl_s.median()
(14)                              --quantile(q=0.25)
sl_s.quantile(q=0.25)
(15)                              --quantile(q=0.75)
sl_s.quantile(q=0.75)
(16)                                --skew()
sl_s.skew()    
  :  00         
        0,      ,             。
(17)                                 --kurt()
sl_s.kurt()
  :<00              ,       
(18)        (numpy  )          --histogram()
np.histogram(sl_s.values,bins = np.arange(0.0,1.1,0.1))
    :
[195,1214,532,974,…]
[0.0,0.1,0.2,0.3,0.4…]
  0.0-0.1   1950.1-0.2   12140.1

3. 4분의 1로 이상치 제거
3.1.    1  
le_s[le_s>1]
3.2     1    
le_s[le_s<=1]
3.3      (      )
3.3.1     
q_low=le_s.quantile(q =0.25)
3.3.2     
q_high=le_s.quantile(q=0.75)
3.3.3      
q_interval=q_high-q_low
3.3.4   k  
K=1.5~3  
  k=1.5,           
  k=3.03.3.5   
le_s=le_s[le_sq_low-k*q_interval]
3.4                                     --len()
len(le_s)
3.5       (numpy  )
np.histogram(le_s.values,bins=np.arange(0.0,1.1,0.1))
3.6        ,   ,   ,   ,   ,  ,  ,       。

4. 정적 구조 분석
4.1                            --values_counts()
np_s.value_counts()
4.2           (      )
np_s.value_counts(normalize=True)
4.3   
np_s.value_counts(normalize=True).sort_index()

5. 데이터 파티션 간
5.1                 --histogram() 
np.histogram(amh_s.values,bins=10)          10 
5.2              ,       
(       )
Np.histogram(amh_s.values,bins = np.arange(amh_s.min(),amh_s.max()+10,10))
(       )
amh_s.value_counts(bins=np.arange(amh_s.min(),amh_s.max()+10,10))

6. 영문 이상값 데이터 처리
6.1   ,          
s_s.value_counts()
6.26.3      (NaN)            --where()
s_s.where(s_s!="name")
    ”name”     
6.4                    --dropna()     
s_s.where(s_s!="name").dropna()
6.5           
s_s.where(s_s!="name").dropna().value_counts()

7. 비교 분석
7.1          
Df = df.dropna(axis=0,how=’any’)
axis =0 ,       
how=‘any’                 
how=‘all’                 
7.2             
df=df[df["last_evaluation"]<=1][df["salary"]!="name"][df["department"]!="sale"]
7.3  (  :           )     --groupby()
df.groupby("department")
7.4         
df.groupby("department").mean()
7.5      (  )                     --loc()
df.loc[:,["last_evaluation","department"]].groupby("department")
7.6         
df.loc[:,["last_evaluation","department"]].groupby("department").mean()
7.7                                --apply()
df.loc[:,["average_monthly_hours","department"]].groupby("department")[ "average_monthly_hours"].apply(lambda x:x.max()-x.min())

초심을 잃지 않고 계속 전진하라!

좋은 웹페이지 즐겨찾기