0. Test Code

#!/bin/env python
# coding: utf-8

'''
Created on Feb 21, 2020
@author: RInoC
'''

import pandas as pd

#---- 1. [한국알콜] 일별 시세
url = "https://finance.naver.com/item/sise_day.nhn?code=017890"
df = pd.read_html(url)
print("1.한국알콜 일별 시세\n", df[0], "\n\n")

#----- 2. N/A row 제거 : dropna method
print("2.N/A row 제거 \n", df[0].dropna(axis=0), "\n\n")

#----- 3. df 는 List 형, df[0] 은 DataFrame 형 자료
print("3.1 df = List 자료형\n", type(df), "\n\n")
print("3.2 df[0] = DataFrame 자료형\n", type(df[0]), "\n\n")

#----- 4. Index 지정 : set_index method
dfs = df[0].set_index("날짜")
print("4. Index 지정\n", dfs.dropna(axis=0), "\n\n")

#----- 5. html to excel 변환
df[0].dropna(axis=0).to_excel("files/test_DataFrame_html-to-excel.xlsx")

#================================================== 
### 6. DataFrame Idexing/Slicing
#----- 6.1 column 호출
#----- 6.1.1 index column("날짜") 호출 : KeyError (set_index 지정된 Index 는 column 호출 안된다.)
try:
	print("실행 안됨", dfs.dropna(axis=0)["날짜"], "\n\n")		
except KeyError:
	print("6.1.1 index column(\"날짜\") 호출\n", "Error : 날짜는 Index 입니다.", "\n\n")

#----- 6.1.2 column("날짜") 호출 
print("6.1.2 column(\"날짜\") 호출\n", df[0].dropna(axis=0)["날짜"], "\n\n")

#----- 6.2 row 호출
#----- 6.2.1 특정 Index 지정 호출 : loc method(dtype: float64)
print("6.2.1 특정 Index 지정 호출\n : loc method(dtype: float64)", dfs.loc["2020.02.21"], "\n\n")

#----- 6.2.2 자동 매핑 Index 호출 : loc method(dtype: object)
print("6.2.2 자동매핑 Index 호출 : loc method(dtype: object)\n", df[0].loc[1], "\n\n")

#----- 6.2.3 자동 매핑 Index 호출 : iloc method(dtype: object)
print("6.2.3 자동 매핑 Index 호출 : iloc method(dtype: object)\n", df[0].iloc[1], "\n\n")

#----- 6.3 Multi column 호출 : List 자료형
df_list = ["날짜", "종가"]
print("6.3 Multi column 호출 : List 자료형\n", df[0].dropna(axis=0)[df_list], "\n\n")

#----- 6.4 Multi row 호출 : List 자료형
df_list = [1, 2, 3]
print("5.4 Multi row 호출 : List 자료형\n", df[0].iloc[df_list], "\n\n")
#===================================================

#----- 7. DataFrame column 추가
s = pd.Series([None, 10, 20, 30, 40, 50, None, None, None, 90, 100, 110, 120, 130])
df[0]['x10'] = s
print("7. DataFrame column 추가\n", df[0].dropna(axis=0), "\n\n")

#----- 8. DataFrame row 추가
df[0].loc[14] = ['3000.01.01', 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
print("8. DataFrame row 추가\n", df[0].dropna(axis=0), "\n\n")

#===================================================
### 9. column shift
sft = df[0]['x10'].shift(1)
df[0]['x10_shift'] = sft
#----- 9.1 전체 row 호출
print("9.1 전체 row 호출\n", df[0], "\n\n")
#----- 9.2 모든 행이 N/A 이면 삭제
print("9.2 모든 행이 N/A 이면 삭제\n", df[0].dropna(how='all'), "\n\n")
#----- 9.3 "날짜" column 에 N/A 값이 있으면 삭제
print("9.3 \"날짜\" column 에 N/A 값이 있으면 삭제\n", df[0].dropna(subset=['날짜']), "\n\n")

 

1. html parsing

#---- 1. [한국알콜] 일별 시세
url = "https://finance.naver.com/item/sise_day.nhn?code=017890"
df = pd.read_html(url)
print("1.한국알콜 일별 시세\n", df[0], "\n\n")

 

2. N/A row 제거 : dropna method

#----- 2. N/A row 제거 : dropna method
print("2.N/A row 제거 \n", df[0].dropna(axis=0), "\n\n")

 

3. 자료형 확인

#----- 3. df 는 List 형, df[0] 은 DataFrame 형 자료
print("3.1 df = List 자료형\n", type(df), "\n\n")
print("3.2 df[0] = DataFrame 자료형\n", type(df[0]), "\n\n")

 

4. Index 지정 : set_index method

#----- 4. Index 지정 : set_index method
dfs = df[0].set_index("날짜")
print("4. Index 지정\n", dfs.dropna(axis=0), "\n\n")

 

5. html to excel 변환

#----- 5. html to excel 변환
df[0].dropna(axis=0).to_excel("files/test_DataFrame_html-to-excel.xlsx")

 

6. DataFrame Idexing/Slicing

#================================================== 
### 6. DataFrame Idexing/Slicing
#----- 6.1 column 호출
#----- 6.1.1 index column("날짜") 호출 : KeyError (set_index 지정된 Index 는 column 호출 안된다.)
try:
	print("실행 안됨", dfs.dropna(axis=0)["날짜"], "\n\n")		
except KeyError:
	print("6.1.1 index column(\"날짜\") 호출\n", "Error : 날짜는 Index 입니다.", "\n\n")

#----- 6.1.2 column("날짜") 호출 
print("6.1.2 column(\"날짜\") 호출\n", df[0].dropna(axis=0)["날짜"], "\n\n")

#----- 6.2 row 호출
#----- 6.2.1 특정 Index 지정 호출 : loc method(dtype: float64)
print("6.2.1 특정 Index 지정 호출\n : loc method(dtype: float64)", dfs.loc["2020.02.21"], "\n\n")

#----- 6.2.2 자동 매핑 Index 호출 : loc method(dtype: object)
print("6.2.2 자동매핑 Index 호출 : loc method(dtype: object)\n", df[0].loc[1], "\n\n")

#----- 6.2.3 자동 매핑 Index 호출 : iloc method(dtype: object)
print("6.2.3 자동 매핑 Index 호출 : iloc method(dtype: object)\n", df[0].iloc[1], "\n\n")

#----- 6.3 Multi column 호출 : List 자료형
df_list = ["날짜", "종가"]
print("6.3 Multi column 호출 : List 자료형\n", df[0].dropna(axis=0)[df_list], "\n\n")

#----- 6.4 Multi row 호출 : List 자료형
df_list = [1, 2, 3]
print("6.4 Multi row 호출 : List 자료형\n", df[0].iloc[df_list], "\n\n")
#==================================================

 

7. DataFrame column 추가

#----- 7. DataFrame column 추가
s = pd.Series([None, 10, 20, 30, 40, 50, None, None, None, 90, 100, 110, 120, 130])
df[0]['x10'] = s
print("7. DataFrame column 추가\n", df[0].dropna(axis=0), "\n\n")

 

8. DataFrame row 추가

#----- 8. DataFrame row 추가
df[0].loc[14] = ['3000.01.01', 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
print("8. DataFrame row 추가\n", df[0].dropna(axis=0), "\n\n")

 

9. column shift

#===================================================
### 9. column shift
sft = df[0]['x10'].shift(1)
df[0]['x10_shift'] = sft
#----- 9.1 전체 row 호출
print("9.1 전체 row 호출\n", df[0], "\n\n")
#----- 9.2 모든 행이 N/A 이면 삭제
print("9.2 모든 행이 N/A 이면 삭제\n", df[0].dropna(how='all'), "\n\n")
#----- 9.3 "날짜" column 에 N/A 값이 있으면 삭제
print("9.3 \"날짜\" column 에 N/A 값이 있으면 삭제\n", df[0].dropna(subset=['날짜']), "\n\n"

반응형

+ Recent posts