[이전]
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

'Python Code' 카테고리의 다른 글
| [파이썬코드] tkinter, Frame, Notebook, Canvas (0) | 2021.10.15 |
|---|---|
| [파이썬코드] tkinter, Lable, StringVar, Button (0) | 2021.10.10 |
| [파이썬코드] tkinter, tab, menu (0) | 2021.10.10 |
| [파이썬 코드] pandas, RSI (0) | 2021.10.04 |
| [파이썬 코드] pandas_datareader (0) | 2021.10.04 |