html에서 표 가져오기 및 데이터프레임으로 만들기
import pandas as pd
url='https://naver.com/......' # 이와 같은 url 주소
table = pd.read_html(url, header=0, encoding='utf-8') # 해당 http 문서에 있는 table 들을 모두 가져온다.
print(table[1]) # 인덱스를 사용해 원하는 테이블에 접근 가능
table2 = pd.read_html(url, match = '국가', header=0, encoding='utf-8') # 해당 문서에 있는 table 중 특정 문자열을 포함하는 표만 가져온다.
print(table2[0]) #위 조건에 만족하는 표가 하나였어도 리스트안에 데이터프레임이 들어있는 형태로 존재하기에 인덱스로 접근해야한다.
디렉토리 내 파일 탐색
import os
for path in os.listdir('./folder1/'):
print(path) # 해당 디렉토리 내 존재하는 모든 파일들을 리스트 안에 상대경로로 반환한다.
파일 확장자 검사
import os
sample1= './folder1/sample.txt'
print(os.path.splitext(sample1)) # ['./folder1/sample','./txt']
for path in os.listdir('./folder1/'):
if os.path.splitext(path)[1]=='.txt':
print(path) # txt 파일일 경우만 출력
파이썬 사용자 정의 예외처리
class MyException(Exception):
pass #혹은 이곳에 예외처리구문을 작성
try:
raise MyException
except MyException:
#클래스 내에 예외처리구문을 작성하지 않은 경우 이곳에 작성
print("이것은 예외처리구문입니다.")
디렉토리 내 모든 데이터프레임 합치기
import os
import pandas as pd
import csv
root_path='./folder1/'
full_df= pd.DataFrame()
for path in os.listdir(root_path):
if os.path.splitext(path)[1]=='.csv':
temp= pd.read_csv(root_path+path,index_col=0)
full_df= pd.concat([full_df,temp]) #병합
print(full_df.sample(5)) #5개 랜덤 보여준다.
데이터프레임 값 기반으로 재정렬하기
정렬 이전
나이 | 용돈 | |
0 | 13 | 4000 |
1 | 13 | 3000 |
2 | 12 | 5000 |
import pandas as pd
df=pd.read_csv('./sample.csv',index_col=0)
sdf=df.sort_values(by=['나이','용돈']) # 나이를 우선으로 용돈을 차선으로 오름차순 정렬
print(sdf)
정렬 이후
나이 | 용돈 | |
2 | 12 | 5000 |
1 | 13 | 3000 |
0 | 13 | 4000 |
인덱스는 정렬 되지 않는다.
데이터프레임 인덱스 초기화
sdf.reset_index(drop=True) #인덱스 초기화 이후 예전 인덱스는 컬럼에서 삭제
파이썬 로그 활용
import logging
logging.warn("warn로그입니다.")
# 로그 레벨: CRITICAL(50), ERROR(40), WARNING(3), INFO(20), DEBUG(10), NOTSET(0)
logging.setLevel(logging.INFO) #설정한 INFO레벨 이상의 로그들만 보게 설정
logging.basicConfig(filename='example.log',level=logging.DEBUG) # 로그를 저장
파이썬 실행 로그를 남겨보자, logging 모듈 이용하기!
파이선 실행 로그를 남기기 위해 가장 많이 사용하는 방법은 print함수입니다. 가장 먼저 배우는 함수가 print함수인만큼 친숙하고 쉽기 때문인데요. logging모듈을 이용해서 로그를 남기면 유용하
aplab.tistory.com
파이썬 파일 입출력
# 모드 | w=쓰기(기존에존재하면새로만든다.), a=추가(기존에존재하면이어서쓴다.), r=읽기
with open("./sample.txt","w") as f:
f.write("한 줄 쓰기")
f.write("그 다음 줄")
f.close()
with open("./sample.txt","r") as f:
s1=f.read(10) # 문자 10개 읽기
s2=f.readline() # 개행문자 만날때까지 한 줄 읽어오기
s3=f.readlines() # 개행문자 포함 파일의 모든 문자열을 읽어온다.
f.close()
'TIL' 카테고리의 다른 글
01.08 vi 문자열찾기 | 환경변수 추가 | 리스트간집합연산 (0) | 2023.01.08 |
---|---|
01.04 requests.get.status_code | read_csv | to_csv | 파이썬 병렬 컴퓨팅 | list&dict -> dataframe | fake_agent (0) | 2023.01.04 |
01.01 datetime | pass vs continue | 예외처리 | json.dump | 파이썬 API 호출 | Thunder Client (1) | 2023.01.01 |
12.30 pow | 원형큐 | ASCII | reduce (0) | 2022.12.31 |
12.28 defaultdict | setrecursionlimit | 큰수 계산 (0) | 2022.12.28 |