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.sort_values('age', ascending=False)
df_ex
이렇게 제일 왼쪽의 인덱스가 4, 2, 1, 3으로 섞인 것을 볼 수 있음
이렇게 섞인 인덱스를 reset_index()로 초기화해주면,
reset_df_ex = df_ex.reset_index()
reset_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
이렇게 인덱스 초기화만 될 뿐 새로운 컬럼으로 이전의 인덱스가 자리잡지는 않음.
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)
댓글