[이전]


df = pd.read_csv('stock.csv')
df['Date'] = pd.to_datetime(df['Date'], errors='raise') # datetime64[ns] 으로 data type 변환
df['Dayofweek'] = df['Date'].dt.day_name() # 'Date'에 해당하는 날짜의 요일 생성

df1 = []

for i in range(df.shape[0]): # 월 1, 화 2, 수 3, 목 4, 금 5로 정의하여 리스트화
    week = df.iloc[i, -1]
    if week == 'Monday':
        df1.append(1)
    else:
        if week == 'Tuesday':
            df1.append(2)
        else:
            if week == 'Wednesday':
                df1.append(3)
            else:
                if week == 'Thursday':
                    df1.append(4)
                else:
                    if week == 'Friday':
                        df1.append(5)
                    else:
                        df1.append(0)

df['Num'] = df1

df2 = []

for i in range(df.shape[0]-1): # 금요일이 휴일 인 경우를 찾아 종가를 전날로 하기 위한 방법 적용
    if df.iloc[i+1, -1] - df.iloc[i, -1] < 0: # 일주일의 마지막 날이면 1, 아니면 0
        df2.append(1)
    else:
        df2.append(0)

df2.append(0)
df['WeekClose'] = df2

weekclose = df['WeekClose'] == 1 # 1인 경우만 필터링하면 일주일의 마지막 날만 필터링
weekclose = df[weekclose]
weekclose.set_index('Date', inplace=True)

print(weekclose['Close']) # 주 종가 리스트

 


[결과]

 

Date
2010-01-08    16420.0
2010-01-15    16840.0
2010-01-22    16500.0
2010-01-29    15680.0
2010-02-05    15000.0
               ...   
2020-11-27    68200.0
2020-12-04    71500.0
2020-12-11    73400.0
2020-12-18    73000.0
2020-12-24    77800.0
Name: Close, Length: 572, dtype: float64

 

 

 

 

+ Recent posts