728x90
#시간변수를 생성하느 함수 정의
def lag_function(df,var_name, past):
    # df = 시간변수를 생성할 데이터 프레임
    # var_name= 시간변수 생성의 대상이 되는 변수 이름
    # past= 몇 년 전의 성적을 생성할지 결정(정수형)
    
    df.reset_index(drop=True, inplace=True)
    #시간변수 생성
    df['lag'+str(past)+'_'+var_name] = np.nan #결측치로 채워 넣어 놓는다
    df['lag'+str(past)+'_'+'AB'] = np.nan
    
    for col in ['AB',var_name]:
        for i in range(0, (max(df.index)+1)):
            val=df.loc[(df['batter_name']==df['batter_name'][i])& #이름이 가르시아 이면서
                       (df['year']==df['year'][i]-past),col]   #년도는 i년도
            #과거 기록이 결측치가 아니라면 값을 넣기
            if len(val)!=0:
                df.loc[i,'lag'+str(past)+'_'+col]=val.iloc[0] #i번째 행에 삽입
    
    #30타수 미만 결측치 처리
    df.loc[df['lag'+str(past)+'_'+'AB']<30,
          'lag'+str(past)+'_'+var_name]=np.nan   #var_name 행의 존재하는 30미만은 제거하고
    df.drop('lag'+str(past)+'_'+'AB', axis=1, inplace=True)  #AB열을 제거 하여 var_name만 남김
    return df

위 코드를 이해 하는데 1시간이상이 걸렸어요

교재에는 짧게 설명이 되어 있어서 이 함수를 왜 만들고 무엇을 위한 목적인지 파악하는데 조차 

이해가 안되었어요 

 

일정도 새로 넉넉하게 짜야 할것같구요 

이 실습에 대해서 어떤 방향으로 공부 할지 고민좀 해봐야 할것같아요

한번 실습했다고 제 것이 될것같진 않더라구요

 

코드도 공부가 되지만 일단 인사이트를 어떤 식으로 뽑는지 그런 견문을 넓히는게 우선인 것같네요

 

 

728x90

+ Recent posts