[카테고리:] 파이썬

  • 판다스 독학 공부 05. 행열 위치 바꾸기(transpose), 열을 행 인덱스로 사용하기(set_index)

    판다스 독학 공부 05. 행열 위치 바꾸기(transpose), 열을 행 인덱스로 사용하기(set_index)

    판다스 행열 위치 바꾸기 특정 열 행 인덱스로 사용

    판다스 독학 공부 05. 행열 위치 바꾸기, 열을 행 인덱스로 사용하기. 지금까지 데이터프레임을 만들고 열 이름과 행 인덱스 이름을 바꾸고, 행열 추가 및 수정 삭제 방법 등 기본적으로 알아야 할 중요한 내용은 알았으나.. 아직 끝이 아니다. 데이터프레임은 2차원 배열의 복잡한 자료형이다 보니 알아야 할 내용이 더 있다.

    이 포스트에서는 행열 위치 바꾸는 방법과 열을 행 인덱스로 사용하는 방법을 배워보겠다.


    판다스 독학 공부
    행열 위치 바꾸기

    판다스 데이터프레임 자료형에서는 행열 위치를 바꿀 수 있다. 그러면 말그대로 행은 열로, 열은 행으로 바뀌게 된다. 방법은 객체.transpose( ) 또는 객체.T 메서드를 사용하면 된다.

    행열 위치 바꾸기

    연습을 위해 아무 의미 없는 데이터프레임을 만든다. 위 데이터프레임에서 열 이름은 A, B, C가 되고 행 인덱스는 0, 1, 2가 된다.

    열과 행의 위치를 바꾸는 코드를 변수 df에 대입하고 출력한다.
    df = df.T
    print( df )

    행열 위치 바꾸기 실행 코드

    코드를 실행하면 위와 같은 결과를 얻는다. 첫 번째 출력은 기존의 데이터프레임이고 두 번째 출력에서 행열이 바뀐 모습을 확인할 수 있다.


    판다스 독학
    특정 열 행 인덱스로 사용하기

    기본적으로 행 인덱스 이름을 따로 정해두지 않고 데이터프레임을 만들면 단순히 0, 1, 2..n이 인덱스 이름이 된다. 이때 특정 열을 행 인덱스로 사용할 수 있는 데 set_index( ) 메서드를 사용한다.

    특정 열 행 인덱스로 지정

    도시와 인구수를 데이터프레임으로 만들고 출력하면, 인덱스 이름은 따로 지정하지 않았으므로 인덱스 이름음 0, 1, 3이다.

    여기서 열 ‘도시’를 행 인덱스로 사용해 보겠다.
    df_city = df.set_index( ‘도시’ )
    print( df_city )

    특정 열 행 인덱스로 지정 실행 결과

    위 코드를 실행하면 위와 같은 결과를 얻는다. 첫 번째 출력은 기존의 데이터프레임이고, 두 번째 출력은 열 ‘도시’를 행 인덱스 바꾼 데이터프레임의 모습이다.

    행 인덱스 초기화

    만약 행 인덱스를 초기화하고 싶다면 reset_index( ) 메서드를 사용한다.

    set_index 메서드를 적용시킨 변수 df_city에 다시 reset_index 메서드를 적용시키고 새로운 변수에 넣어준다.
    df_reset = df_city.reset_index( )
    print( df_reset )

    행 인덱스 초기화 실행 결과

    코드를 실행하면 열 ‘도시’가 행 인덱스로 바뀐 데이터프레임이 다시 원래대로 돌아온 것을 확인할 수 있다.


    추천 포스트

    데이터프레임 행열 추가, 수정, 삭제
    링크: https://k-man.kr/3506

    데이터프레임 행열 인덱싱 슬라이싱
    링크: https://k-man.kr/3445

  • 판다스 기초 공부 04. 데이터프레임 행열 추가 수정 삭제, drop 메서드

    판다스 기초 공부 04. 데이터프레임 행열 추가 수정 삭제, drop 메서드

    판다스 데이터프레임 행열 추가 수정 삭제

    판다스 기초 공부 04. 데이터프레임 행열 추가 수정 삭제. 지금까지 판다스 데이터프레임 행열 이름을 변경하는 방법과 인덱싱과 슬라이싱 방법을 배웠는데, 아직까지 기초다. 이 포스트에서도 가장 기본이 되는 행열에 데이터를 추가하거나 수정, 삭제하는 방법을 배우도록 하겠다.


    판다스 데이터프레임
    행열 추가 수정

    판다스 데이터프레임에 행열을 추가하는 방법과 수정하는 방법은 딕셔너리 자료형과 똑같다. 딕셔너리 자료형에서 객체[ 키 ]에 값을 대입을 할 때 키가 기존에 존재하는 키라면 수정이 되고, 키가 없다면 추가가 된다. 데이터프레임에는 키 대신 행열 이름이 들어갈 뿐이다.

    행열 추가 수정
    행열 추가 수정 예시

    먼저 위와 같이 간단한 데이터프레임을 생성한다.

    행열 추가 예시

    ‘직업’이라는 열을 추가하겠다. 열 추가는 딕셔너리 자료형을 추가하는 방법과 동일하다.
    df[ ‘직업’ ] = [ ‘개발자’, ‘디자이너’, ‘마케터’ ]
    print( df )
    print( ‘-‘ * 30 )


    다음으로 행을 추가하겠다. 행을 추가할 때는 행 이름을 기반으로 객체.loc 속성을 사용한다.
    df.loc[ 3 ] = [ ‘박지성’, 38 ‘수원’, ‘축구선수’ ]
    print( df )

    행열 추가 예시 실행 결과

    코드를 실행하면 열과 행이 추가된 것을 확인할 수 있다.

    행열 수정 예시

    수정하는 방법은 추가와 똑같다. 다만 기존에 정의된 열 이름과 행 이름을 알아야 한다.

    열 ‘지역’을 수정한다.
    df[ ‘지역’ ] = [ ‘울산’, ‘대구’, ‘제주’ ]
    print( df )
    print( ‘-‘ * 30 )


    다음으로 행 이름 ‘0’을 수정한다.
    df.loc[ 0 ] = [ ‘김연아’, 32, ‘강릉’ ]
    print( df )

    행열 수정 예시 실행 결과

    코드를 실행하면 위와 같은 결과를 얻을 수 있다.

    다만 위 방법은 전체 열과 전체 행을 수정하는 방법으로, 개별 데이터의 값을 수정하고 싶다면 개별 데이터를 인덱싱한 다음 대입하는 식으로 수정해야 한다. 예를 들어 위 데이터프레임에서 김연아의 나이를 32에서 28로 수정하고 싶다면,

    df.loc[ 0 ][ ‘나이’ ] = 28

    위와 같이 코드를 작성하면 된다.


    판다스 데이터프레임
    행열 삭제

    행과 열을 삭제하려면 drop 메서드가 필요하다. 행을 삭제할 때는 axis 옵션을 0으로, 열을 삭제할 때는 axis 옵션을 1로 입력한다. drop 속성은 기존 객체를 변경하지 않으므로 원본을 수정하려면 inplace = Ture 옵션을 추가해야 한다.

    행열 삭제 예시

    열 ‘지역’을 삭제한다.
    df.drop( ‘지역’, axis = 1, inplace = True )
    print( df )


    행 ‘2’를 삭제한다.
    df.drop( 2, axis = 0, inplace = True )
    print( df )

    행열 삭제 예시 실행 결과

    코드를 실행하면 위와 같이 행열이 삭제된 것을 확인할 수 있다. 여러 행열을 삭제하려면 대괄호를 이용해 리스트 형식으로 삭제할 목록을 작성하면 된다.


    추천 포스트

    데이터프레임 행열 인덱싱과 슬라이싱
    링크: https://k-man.kr/3445

  • 판다스 공부 03. 데이터프레임 행열 인덱싱(Indexing) 슬라이싱(Slicing)

    판다스 공부 03. 데이터프레임 행열 인덱싱(Indexing) 슬라이싱(Slicing)

    판다스 데이터프레임 행열 인덱싱 슬라이싱

    판다스 공부 03. 데이터프레임 행열 인덱싱 슬라이싱. 데이터프레임 자료형에서 인덱싱(indexing)은 특정 행이나 열을 선택하여 추출하는 것이고, 슬라이싱(Slicing)은 연속적인 행이나 열을 선택하여 추출하는 것이다. 행열 인덱싱과 슬라이싱은 자료형을 다루는 가장 기본이므로 이 포스트에서 자세히 배우고 넘어가도록 하겠다.


    판다스 데이터프레임
    행과 열 인덱싱

    보통 열은 이름이 정해져 있으므로 열을 인덱싱할 때는 객체[열 이름]을 입력하면 된다. 반면 행은 인덱스 이름과 인덱스 번호가 있기 때문에 인덱싱하는 방법은 두 가지다. 첫 번째 방법은 인덱스 이름을 기반으로 추출하는 것으로 객체.loc 속성을 사용한다. 두 번째 방법은 인덱스 번호를 기반으로 추출하는 것으로 객체.iloc 속성을 이용한다. 두 가지 방법 모두 알아보겠다.

    데이터프레임 인덱싱 예시
    데이터프레임 인덱싱 예시 실행 결과

    연습을 위해 위 코드를 입력해 학교성적과 관련된 데이터프레임 자료형을 만들고 실행한다. 열 이름은 [ ‘국어’, ‘영어’, ‘수학’ ]이고 행 인덱스 이름은 [ ‘연진’, ‘재준’, ‘사라’ ]다. 더 글로리를 참고했다.

    데이터프레임 행열 인덱싱 예시

    먼저 ‘국어’열을 인덱싱하고 프린트로 출력한다.
    print( df[ ‘국어’ ] )
    print( ‘-‘ * 80 )

    다음으로 행을 인덱싱하고 출력한다. 먼저 행 인덱스 이름으로 인덱싱 & 출력하고,
    print( df.loc[ ‘사라’ ] )
    print( ‘-‘ * 80 )


    행 인덱스 번호로도 인덱싱 & 출력한다.
    print( df.iloc[ 2 ] )
    print( ‘-‘ * 80 )

    행열 인덱싱 실행 결과

    행 인덱스 이름 ‘사라’와 인덱스 번호 2는 동일한 값이므로, 코드를 실행하면 위와 같은 결과를 얻을 수 있다.


    판다스 데이터프레임
    행과 열 슬라이싱

    열의 단독으로 슬라이싱은 할 수 없다. 대신 순서와 상관없이 여러 열을 선택할 수 있는데 방법은 리스트 자료형처럼 쉼표로 구분해 나열하면 된다. 객체[ [ 열 이름1, 열 이름2, … ] ] 이렇게 (참고로 행도 동일한 방법으로 순서와 상관 없이 선택할 수 있다).

    행은 기존에 우리가 아는 방법 [ 시작 : 끝 : 간격 ]으로 슬라이싱 할 수 있다. 행 이름으로 슬라이싱할경우 객체.loc 속성을, 행 인덱스 번호로 슬라이싱할 경우 객체.iloc 속성을 사용한다.

    데이터프레임 행열 슬라이싱

    데이터프레임 자료형에서 행 ‘국어’와 ‘영어’를 선택한다.
    print( df[ ‘국어’, ‘영어’] )
    print( ‘-‘ * 20 )

    데이터프레임 자료형에서 열 ‘재준’부터 ‘사라’까지 슬라이싱 한다.
    print( df.loc[ ‘재준’ : ‘사라’ ] )

    데이터프레임 행열 슬라이싱 예시

    코드를 실행하면 위 결과를 얻을 수 있다.


    판다스 데이터프레임
    행열 동시에 인덱싱 슬라이싱

    행과 열을 동시에 인덱싱 슬라이싱할 수 있다. 행 인덱싱 슬라이싱 방법 객체.loc[ ‘행이름’, ‘열이름 ]에 쉼표를 붙여 열을 지정하는 방식이므로 쉽게 이해할 수 있을 것이다.

    행열 인덱싱 예시

    loc 속성을 사용해 행 이름 ‘연진’에 열 이름 ‘국어’를 추출한다.
    print( df.loc[ ‘연진’, ‘국어’ ] )
    print( ‘-‘ * 20 )


    iloc 속성을 사용해 행 인덱스 0번에 열 인덱스 0번을 추출한다.
    print( df.iloc[ 0, 0 ] )
    print( ‘-‘ * 20 )


    만약 여러 행 또는 여러 열을 선택하고 싶다면 대괄호를 더 사용하면 된다. 예를 들어 행 인덱스 0번에 열 인덱스 0번과 2번을 추출하려면 다음과 같이 코드를 작성하면 된다.
    print( df.iloc[ 0, [ 0, 2 ] ] )

    행열 인덱싱 예시

    코드 실행 결과는 위와 같다.

    행열 슬라이싱

    슬라이싱할 때는 굳이 대괄호를 추가로 사용할 필요는 없다. 단순히 객체.loc[ 행 슬라이싱, 열 슬라이싱 ]으로 구분해 주면 된다. 행은 ‘연진’부터 ‘재준’까지, 열 ‘국어’부터 ‘영어’까지 데이터프레임을 슬라이싱한다.
    print( df.loc[ ‘연진’ : ‘재준’ , ‘국어’ : ‘영어’ ]

    행열 슬라이싱 예시

    코드를 실행하면 위와 같이 행열을 동시에 슬라이싱할 수 있다.


    추천 포스트

    판다스 기본 자료형 시리즈와 데이터프레임
    링크: https://k-man.kr/3289

    행 인덱스 열 이름 변경 수정
    링크: https://k-man.kr/3341

  • 판다스 독학 강의 02. 데이터프레임 행 인덱스와 열 이름 변경과 수정

    판다스 독학 강의 02. 데이터프레임 행 인덱스와 열 이름 변경과 수정

    판다스 행 인덱스 열 이름 변경

    판다스 독학 강의 02. 데이터프레임 행 인덱스와 열 이름 변경. 지난 포스트에서 판다스 데이터프레임 자료형을 만드는 방법을 배웠다. 데이터프레임 자료형은 표의 형태이므로 이 포스트에서는 행 인덱스와 열 이름 변경과 수정하는 방법을 가장 기본적으로 일아보겠다.


    판다스 행 인덱스와 열 이름 전체 변경

    판다스 데이터프레임 예시
    판다스 데이터프레임 실행

    지난 포스트와 똑같이 딕셔너리 자료형을 데이터프레임으로 변환하여 변수 df에 대입하는 코드를 작성하고 실행하면, 행 인덱스는 0, 1, 2가 되고 열 이름은 A, B, C가 된다. 여기서 행 인덱스를 바꾸려면 판다스 객체.index 속성을, 열 이름은 객체.columns 속성을 사용해 바꾸려는 인덱스와 이름을 대입해주면 된다.

    판다스 행 인덱스 열 이름 변경

    먼저 수정할 행 인덱스를 대입한다.
    df.index = [ ‘하나’, ‘둘’, ‘셋’ ]

    그 다음에 수정할 열 이름을 대입한다.
    df.columns = [ ‘가’, ‘나’, ‘다’ ]

    판다스 예시 실행결과

    그리고 코드를 실행하면 행 인덱스는 하나, 둘, 셋으로, 열 이름은 가, 나, 다로 수정된 것을 확인할 수 있다. 하지만 이 방법은 전체 행 인덱스와 열 이름을 한 번에 변경하는 방법이므로 현재처럼 행 인덱스가 3개가 필요한 상황에서 두 개만 입력하거나 네 개 이상 입력하면 에러가 나타나게 된다.

    이제 원하는 행 인덱스나 열 이름을 수정하는 방법을 알아보겠다.


    판다스 행 인덱스와 열 이름 개별 수정

    행 인덱스와 열 이름을 개별적으로 수정하고 싶다면 판다스 객체.rename 속성을 사용해야 한다. 방법은 객체.rename = ( index/columns = { 변경 전 : 변경 후 }, inplace = True )와 같다. inplace = True를 넣지 않으면 데이터프레임 원본이 수정되지 않으므로 반드시 넣어줘야 한다.

    판다스 행 인덱스 열 이름 개별 수정

    행 인덱스 중 ‘셋’을 ‘쓰리’로 바꾼다.
    df.rename( index = { ‘셋’ : ‘쓰리’ }, inplace = True )

    열 이름 중 ‘가’를 ‘A’로 바꾼다.
    df.rename( columns = { ‘가’ : ‘A’ }, inplace = True )

    판다스 예시 실행결과

    코드를 실행하면 위와 같이 행 인덱스 셋은 쓰리로, 열 이름 가는 A로 변경된 것을 확인할 수 있다.


    추천 포스트

    판다스 시리즈와 데이터프레임
    링크: https://k-man.kr/3289

  • 판다스 기초 강의 01. 기본 자료형 시리즈(Series)와 데이터프레임(DataFrame)

    판다스 기초 강의 01. 기본 자료형 시리즈(Series)와 데이터프레임(DataFrame)

    판다스 기본 자료형 시리즈와 데이터프레임

    판다스 기초 강의 01. 기본 자료형 시리즈와 데이터프레임. 판다스(Pandas)는 데이터 분석을 위한 필수 라이브러리로 다양한 기능을 제공한다. 판다스를 배우기 위해서는 가장 기본이 되는 자료형 시리즈(Series)데이터프레임(DataFrame)을 이해해야 한다.


    판다스 기초 강의
    시리즈 자료형

    판다스 시리즈 자료형

    판다스 시리즈 자료형은 순차적으로 나열된 1차원 배열의 자료형으로 인덱스(Index)데이터(Data)가 대응되는 구조로 파이썬 딕셔너리 자료형과 동일한 구조를 가지고 있다. 보통 딕셔너리 자료를 만들고 그것을 다시 변수에 시리즈로 대입하는 방식으로 만든다. 그럼 시리즈를 만들어보자.

    판다스 시리즈 예시

    판다스 라이브러리를 불러오고
    import pandas as pd

    변수 data에 딕셔너리 자료형을 대입
    data = { ‘a’ : 1, ‘b’ : 2, ‘c’: 3 }

    변수 series에 변수 data를 시리즈 자료형으로 변환하여 대입
    series = pd.Series(data)

    마지막으로 프린트함수로 변수 series 출력
    print(series)

    판다스 시리즈 예시 실행 결과

    코드를 실행하면 위와 같은 결과가 나타나며 1차원 배열이 되는 시리즈 자료형의 구조를 알 수 있다.


    판다스 기초 강의
    데이터프레임 자료형

    판다스 데이터프레임 자료형

    데이터프레임은 시리즈가 모여 2차원 배열을 형성한 자료형이다. 쉽게 말하면 (row)과 (column)로 구성된 표로 이해하면 된다. 키에 대응하는 값을 목록으로 만든 딕셔너리 자료형을 그것을 변수에 데이터프레임으로 대입하는 방식으로 만든다. 그러면 키가 컬럼의 인덱스 이름이 되고 값은 시리즈로 나열된다. 직접 만들어보자.

    판다스 데이터프레임 예시

    판다스 라이브러리를 불러온다.
    import pandas as pd

    변수 data에 딕셔너리 자료형을 대입한다.
    data = { ‘A’ : [ 1, 2, 3 ],
    ‘B’ : [ 4, 5, 6 ],
    ‘C’ : [ 7, 8, 9 ] }


    변수 df에 변수 data를 데이터프레임으로 변환하며 대입한다.
    df = pd.DataFrame(data)

    마지막으로 출력한다.
    print(df)

    판다스 데이터프레임 실행

    코드를 실행하면 위와 같이 2차원 배열이 되는 데이터프레임 자료형의 구조를 알 수 있다.


    추천 포스트

    아나콘다 & 주피터 노트북 설치
    링크: https://k-man.kr/3226

    딕셔너리 자료형 이해하기
    링크: https://k-man.kr/2906

  • 파이썬 판다스 시작하기!  아나콘다 설치 방법, 주피터 노트북 설치방법 실행

    파이썬 판다스 시작하기! 아나콘다 설치 방법, 주피터 노트북 설치방법 실행

    판다스 아나콘다 주피터 노트북 설치 실행

    판다스(Pandas)는 파이썬으로 빅데이터 분석 작업을 하기 위해 개발된 라이브러리로 표 형태의 데이터를 다루는 데 특화되어 있다. 파이썬과 별도의 프로그램이 아닌 확장팩처럼 이해하면 쉽다. 따라서 판다스를 시작하려면 파이썬이 설치되어 있어야 한다.

    파이썬 설치하는 방법은 포스트를 발행한 적 있으므로 생략하고(아래 포스트 참고), 이 포스트에서는 판다스 라이브러리와 주피터 노트북이 포함되어 있는 아나콘다 설치 방법을 알아보겠다.

    ● 파이썬 설치 방법: k-man.kr/1906


    아나콘다 설치 방법

    아나콘다 설치 방법

    ● 아나콘다 설치: https://www.anaconda.com

    위 링크를 클릭해 아나콘다 사이트에 접속한 후 [ Download ] 버튼을 클릭해 아나콘다 인스톨 프로그램을 다운받는다.

    아나콘다 설치 방법

    아나콘다 인스톨 프로그램을 실행하면 셋업 창이 뜬다. [ Next ] 버튼을 클릭한다.

    아나콘다 설치 방법

    이용약관을 읽어보고(?) 동의한다면 [ I Agree ] 버튼을 클릭한다.

    아나콘다 설치

    사용자는 Just Me에 체크하고 [ Next ] 버튼을 클릭한다.

    아나콘다 설치

    저장 경로를 선택하고 [ Next ] 버튼을 클릭한다.

    아나콘다 설치 방법

    고급 옵션에 모두 체크하고 [ Install ] 버튼을 클릭하면 설치가 진행된다.

    아나콘다 설치 방법

    설치가 끝나면 [ Next ] 버튼을 눌러주고, 마지막에 [ Finish ] 버튼을 눌러 설치를 종료한다.

    아나콘다 내비게이터 홈

    윈도우 메뉴에서 설치된 아나콘다 내비게이터(Anaconda Navigator)를 실행한다. 아나콘다 내비게이터를 실행해 보면 알겠지만 아나콘다 자체는 패키지와 도구 환경을 제공하는 프로그램이지 코드를 작성하는 프로그램은 아니다. 판다스를 연습하기 위해서는 주피터 노트북(Jupyter Notebook)을 실행하면 된다. [ Launch ] 버튼을 클릭한다.

    앞으로는 아나콘다 내비게이터가 아닌 주피터 노트북 아이콘을 더블 클릭해 실행해 주면 된다.


    주피터 노트북 설치 실행

    주피터 노트북 설치 실행

    주피터 노트북을 실행하면 위와 같이 웹에서 작업할 수 있는 환경이 제공된다. [ New ] 버튼을 클릭하면 풀다운 메뉴가 나오는데 여기서 폴더를 만들 수도 있고 파이썬 코드를 작성할 수도 있다. [ Python 3 ]을 클릭하겠다.

    주피터 노트북 실행

    그러면 파이썬 파일이 만들어지며 파이썬 코드를 작성할 수 있는데, 주피터 노트북은 독특하게도 셀 단위로 코드를 작성하고 실행할 수 있는 독특한 기능이 있다. 먼저 import pandas라고 코드를 작성한다. import는 다른 모듈이나 패키지를 불러오는 기능을 수행한다. 한마디로 판다스 모듈을 가져와 쓰겠다는 말이다.

    그냥 ENTER 키를 누르면 줄바꿈이지만, CTRL + ENTER 키를 누르면 코드가 실행되면서 왼쪽 대괄호에 [ 실행 횟수 ] 가 표시된다.

    주피터 노트북 실행

    이어서 다음 셀에 코드를 작성하고 싶다면 SHIFT + ENTER 키를 누르면 된다. 그러면 셀이 하나 더 생성된다. 이런 식으로 코드 작성과 실행을 셀 별로 넘나들면서 자유롭게 실행하고 수정할 수 있는 것이 주피터 노트북의 장점이다.

    오늘은 판다스 라이브러리가 포함된 아나콘다를 설치했고 주피터 노트북을 실행해 봤다. 다음부터는 본격적으로 판다스에 대해 공부해 보겠다. 기대하시라.


    추천 포스트

    파이썬 기본 개념과 용어 정리
    링크: https://k-man.kr/파이썬-기초-독학-개념-용어-정리

error: Content is protected !!