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"
반응형
'Programming > Python' 카테고리의 다른 글
Python : 프로그램 수행시간 측정 (0) | 2020.02.27 |
---|---|
Python Error : SyntaxWarning: "is" with a literal. (0) | 2020.02.22 |
[Python] pip error (ModuleNotFoundError: No module named 'pip') (0) | 2020.02.19 |
Convert PyQt5 to PySide2 (0) | 2020.02.18 |
PyQt vs PySide2 ui file 사용 (0) | 2020.02.18 |