개발/Python

(Python) - 2 파이썬 교육

개발하는 인사담당자 2024. 8. 23. 17:51

■ 내장 라이브러리

 

* webbrowser

 

* time

time.sleep(1) : 1초 후 실행

 

■ 외부 라이브러리 

* faker

 

faker 는 가짜 데이터를 만들어주는데 유용하다.

 

■ 탭 문자를 공백 문자 4개로 만드는 py 모듈 만들기

 

해당 파일을 복사해서 

 

다음과 같이 파이썬 파일로 만들고 저장해준다.

 

 

다음 같은 명령어를 준다. 

여기서 src 가 sys.argv[1] 은 a.txt 를 의미한다

마찬가지로 dst 는 sys.argv[2] 은 b.txt 를 의미한다

 

왼쪽 : a.txt 오른쪽: b.txt

 

다음과 같이 tab 이 조정된 파일이 만들어진다.

 

■ vs code 로 실행해보기

 

 

해당 방법은 내가 원하는 디렉토리로 바로 코드를 만들 수 있도록 연결해주는 유용한 명령어다 

 

 

vs 코드로 python 실행도 shift + enter 누르면 터미널 열린다. 

실행을 원하는 코드 선택 후 shift + enter 누르면 된다. 

 

 

test 에 있는 add 함수를 사용하고 싶다면

상단에 import 를 통해 사용하면 된다. 

 

 

그리고 실행하면 정상적으로 나오는 것을 볼 수 있다. 

 

 

if __name__ == "__main__":

 

블록 안의 코드는 test.py가 직접 실행될 때만 실행되고,

import test를 통해 모듈로 가져올 때는 실행되지 않습니다.

 

 

따라서 우리가 원하는 mod.py 값만 나온다.

 

1. 모든 .py은 실행하면 __name__ 변수에 __main__ 이 할당된다.

2. import 로 끌고 오면, 끌고 온 모듈에는 다른 문자열이 기록된다. 

 

■ 웹 크롤링

 

 

BeautifulSoup 외부 라이브러리를 통해 크롤링 해본다.

 

내가 크롤링할 페이지를 url 변수에 저장하고

해당하는 내용을 읽은 값을 html 에 저장해준다.

 

해당 파일을 html parser 을 통해 파싱한 값을 soup 에 저장한다.

 

 

f12 개발자 모드에서 원하는 영역을 선택하고 해당하는 class 값을 확인한다. 

 

 

원하는 값을 모두 불러오는 find_all 함수 안에 class_ 로 이름을 찾아준다.

 

※ class 는 예약어로 class_ 넣어줘야 한다. 

 

 

원하는 값이 잘 출력된 것을 확인할 수 있다. 

 

 

.text 나 .string 하면 태그 없이 글자만 가져온다. 

 

 

for 문으로 문자로 모든 글 가져오기(총 10개)

 

 

li 리스트 안에 넣기

 

 

판다스를 통해 표로 편하게 보기

 

 

to_csv() : csv 파일로 저장하기

 

 

페이지별로 가져올 수 있다. 

 

 

2페이지부터 11페이지 가져오기

 

 

■ Numpy 

 

 

np.array() : li 리스트를 배열로 바꿔눈다. 

따라서 이렇게 배열끼리 합을 구할 수 있다. 

 

 

파이썬과 넘파이 속도 차이가 다음과 같이 나는 것을 볼 수 있다. 

 

 

1차원 배열 / 2차원 배열

 

 

10개를 2행 5열로 reshape 처리

 

 

2행 3열이 4겹으로 겹쳐져 있다. 

 

 

a 는 다음과 같이 [0,1,2,3] 인데 여기서 np.array([10]) 을 하면 

1개만 넣었지라도 이를 펼쳐줘서 각각 10씩 더해준다. 

 

이를 broadcasting 이라고 한다. 

 

 

1로 채워진 것 * 3 으로 다 채워주기

 

 

1부터 10까지 3개로 균등하게 나누기

 

 

기본적인 시각화 라이브러리 matplotlib

 

 

 

numpy.sort()

 

 

■ pandas

 

 

pandas 는 문자도 들어감

 

 

key 는 칼럼의 이름으로 들어감

값들은 세로로 들어가게 됨.

 

0과  1은 자동으로 들어가는 것

 

 

index 는 행, columns 는 열의 제목을 나타내준다. 

 

 

행 삭제는 drop() 함수 사용

 

 

.loc[] 을 통해 원하는 데이터 접근이 가능하다.

loc 는 location 이다 .

 

단 이럴 경우 시리즈 1차원 형태로 나와서 모양이 안예쁘게 나온다.

 

 

따라서 마치 데이터가 여러개 있는 것처럼 묶어주면 이쁘게 나온다. 

 

 

iloc : integer location

iloc 하면 숫자로 잡아줄 수 있다. 

 

 

데이터 이름 바꾸기

 

 

인덱스, 칼럼 나오게 하기

 

■ plotly

 

 

 

gapminder() 로 df 만들어준다.

 

 

 

5개 행만 나오게 하기

 

* rename

 

일부 이름 바꾸기

 

 

앞의 4개 열만 나오게 하기