데이터분석 전처리 | 데이터 불러오기, 저장하기 | read_csv / excel( ) | to_csv / excel | 인덱스 바꾸기 | 컬럼명 바꾸기 | 파이썬

    728x90

     

    1. 데이터 불러오기

     

    ▶ 엑셀 / CSV 데이터 불러오기

    pd.read_excel('파일경로/파일명.확장자')
    pd.read_csv('파일경로/파일명.확장자')

     

    ▶ 파일이 깨져서 불러와질 때

    [데이터분석 과정/데이터 분석] - 데이터분석 전처리 | 파이썬(Pandas) 파일_텍스트 깨질 때 해결 방법 | 인코딩 | encoding = | UTF-8

     

    데이터분석 전처리 | 파이썬(Pandas) 파일_텍스트 깨질 때 해결 방법 | 인코딩 | encoding = | UTF-8

    Pandas 파일 불러오기 + 텍스트 깨졌을 때 해결방법 ▶ 파일이 깨지는 이유 Pandas에서 파일을 불러올 때 텍스트 데이터를 읽어오는 과정에서 파일의 인코딩 방식을 정확히 지정하지 않았기 때문 여

    nasena.tistory.com


    1-1) 인덱스(Index)

     

    ▶ 인덱스란?

    데이터프레임(DataFrame) 또는 시리즈(Series)의 각 행 또는 각 요소에 대한 식별자

     

    ① 기본 인덱스

    : Pandas는 데이터프레임을 생성할 때 기본적으로 0부터 시작하는 정수 인덱스를 제공함

    import pandas as pd
    
    df = pd.DataFrame(데이터)

     

    + 불러올 때 인덱스 지정해서 불러올 수 있음

    pd.read_csv('파일경로/파일명.csv', index_col = 0)  # 0부터 시작
    pd.read_csv('파일경로/파일명.csv', index_col = '컬럼명')

     

    ② 사용자 지정 인덱스

    df = pd.DataFrame(데이터, index = [ , , ])

     

     

    ▶ 인덱스의 특징

    • 고유성(Uniqueness) : 각 행은 유일한 인덱스 값을 가져야 함. (중복X)
    • 불변성(Immutability) : 한 번 생성된 인덱스는 변경(수정)할 수 없음
      • 단, 새로운 값을 할당하여 기존 인덱스를 대체하는 것은 가능
    • 조작 및 탐색(Manipulation and Retrieval) : 인덱스로 데이터프레임 또는 시리즈의 특정 행을 선택하거나 탐색할 수 있음
    • 정렬(Sorting) : 인덱스를 기준으로 데이터프레임 또는 시리즐르 정렬할 수 있음

     

    ▶ 인덱스 활용하기

     

    ① 데이터프레임.loc['인덱스명']

    : 인덱스로 특정 인덱스의 행에 접근 가능

    row = df.loc['인덱스명']

     

    ② 데이터프레임.sort_index()

    : 인덱스를 기준으로 데이터프레임 정렬

    sorted_df = df.sort_index()

     

    ③ 데이터프레임.set_index('칼럼명')

    : 인덱스에 특정 컬럼 값 넣기

    data = df.set_index('컬럼명')

     

    ④ 데이터프레임.index

    : 인덱스 확인할 때 사용

    df.index

     

    : 리스트를 활용해 인덱스를 새로 입력할 수도 있음

    df.index = ['예시idx1', '예시idx2', '예시idx3']

     

    ⑤ 데이터프레임.reset_index()

    : 데이터 전처리를 하고나면 데이터가 삭제되거나 순서가 바뀔 수 있음

    이럴 때 인덱스를 reset 해주면 뒤죽박죽인 인덱스를 0부터 시작하는 정수로 초기화할 수 있음

    df.reset_index()

     

    (참고) reset_index(drop = False / True) 정리

    • reset_index()의 기본값drop = False
      이 경우에는 index를 초기화하면, 기존의 index를 한 컬럼에 저장해줌
    • reset_index(drop = True)로 바꿔주면 기존의 index 를 따로 저장하지 않고, 인덱스를 초기화할 수 있음

    이해를 돕기 위해 예를 들어보자면,

    먼저 df_ex라는 예시 데이터프레임을 만들어봄

    import pandas as pd
    
    df_ex = pd.DataFrame([['anna', 24],['sena',35],['happy', 17], ['nana',45]],
                         columns=['name', 'age'],
                         index = [1,2,3,4])
    
    df_ex

    df_ex

     

    df_ex나이가 많은 순서대로 정렬을 하게되면,

    df_ex = df_ex.sort_values('age', ascending=False)
    df_ex

    나이 내림차순 정렬된 df_ex

     

    이렇게 제일 왼쪽의 인덱스4, 2, 1, 3으로 섞인 것을 볼 수 있음

    이렇게 섞인 인덱스를 reset_index()로 초기화해주면,

    reset_df_ex = df_ex.reset_index()
    reset_df_ex

    reset_index()한 df_ex

     

    왼쪽의 인덱스는 0부터 시작하는 정수 인덱스로 초기화가 됐지만(빨간색 박스)

    reset_index()의 기본값drop = False

    이전의 인덱스 4, 2, 1, 3은 버려지지 않고, 새로운 컬럼으로 자리 잡은 것을 확인할 수 있음(노란색 박스)

     

    그런데 여기서 reset_index(drop = True)를 해주면?

    reset_df_ex = df_ex.reset_index(drop=True)
    reset_df_ex

    drop=True된 reset_df_ex

     

    이렇게 인덱스 초기화만 될 뿐 새로운 컬럼으로 이전의 인덱스가 자리잡지는 않음.


    1-2) 컬럼(Column)

     

    컬럼이란?

    데이터프레임(DataFrame)의 열

     

    ▶ 컬럼의 특징

    • 고유한 이름(라벨)을 가지고 있으며 특정한 종류의 데이터(숫자, 문자열, 날짜 등)를 담고 있음
    • 시리즈(Series) 객체로 구성되어 있으며, 데이터프레임의 일부로 간주되어 해당 열의 데이터를 조작하고 접근할 수 있는 인터페이스를 제공함

     

    ▶ 컬럼 활용하기

     

    ① 컬럼명 변경하기

    : 데이터를 불러올 때 컬럼명을 지정해서 가져올 수 있음

    : names = ['컬럼명1', '컬럼명2', ... ]

    pd.read_csv('./data/file.csv' , names = [’컬럼명1’, ‘컬럼명2’, … ,‘컬럼명 19’])

     

    ② 데이터프레임.column

    : 컬럼 확인할 때 사용

    df.column

     

    ③ 컬럼명 바꾸기

    : 리스트로 컬럼명을 새롭게 바꿀 수 있음

    df.column = ['컬럼명a', '컬럼명b', ...]
    df

    2. 데이터 저장하기

     

    ▶ df = 저장하고 싶은 데이터프레임

    : df는 임의로 지정한 변수 이름이므로 각자 자신이 원하는 이름으로 바꿔서 저장하면 됨

    df = 데이터프레임 # 저장하고 싶은 데이터

     

    ▶ pd.to_csv('파일경로/파일명.확장자', index = False)

    df.to_csv('./newfile.csv', index = False)

     

    ▶ pd.to_excel(’파일경로/파일명.확장자’ , index = False)

    df.to_excel('./newfile.xlsx', index = False)
    728x90

    댓글