데이터분석 과정/데이터 분석

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

ANNASENA 2024. 2. 3. 17:24
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