ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (Python) - 2 파이썬 교육
    개발/Python 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개 열만 나오게 하기 

     

     

    '개발 > Python' 카테고리의 다른 글

    (Python) - 4 파이썬 교육  (0) 2024.08.27
    (Python) - 3 파이썬 교육  (0) 2024.08.26
    (Python) - 1 파이썬 교육  (0) 2024.08.22
Designed by Tistory.