1. 데이터 전처리
데이터 분석을 위해 수집된 데이터들을 방향성을 가공하며 내용물을 파악하는 과정을 말한다.
2. Pandas
- Pandas란?
데이터를 조작하고 쉽게 분석할 수 있게 도와주는 라이브러리이다. Pandas에서 사용되는 대표적인 데이터 오브젝트는 Series, DataFrame 2가지 이다.
import pandas as pd
# 에러날 경우 !pip install pandas
구분 | Excel | Pandas |
자동화와 프로그래밍 기능 | 다양한 라이브러리를 사용하여 데이터를 불러오고 변환하며 분석할 수 있음 반복적이고 복잡한 작업을 자동화할 수 있음 |
시각적 사용자 인터페이스를 통해 데이터를 다루는 스프레드시트 프로그램으로 작업은 주로 수동으로 수행되며, 고급 기능을 프로그래밍적으로 확장하기 어려움 |
대용량 데이터 처리 | 대용량 데이터를 처리하는 데 유용 메모리 내에서 데이터를 처리하거나, 큰 데이터 세트를 조각으로 나누어 처리할 수 있는 기능을 제공 |
상대적으로 작은 크기의 데이터셋을 다루는 데 적합 매우 큰 데이터를 처리할 경우 처리 속도가 느려질 수 있고 파일크기 제한 등의 제약이 있을 수 있음 |
복잡한 데이터 처리 및 분석 | 데이터 분석 및 처리를 위한 다양한 도구와 라이브러리를 활용가능하며, 데이터를 다양한 방식으로 조작하고 분석할 수 있음 복잡한 데이터 작업, 통계 분석, 머신러닝 모델 구축 등이 가능 |
기본적인 수식과 함수를 통해 데이터를 처리하고 시각화할 수 있지만, 복잡한 데이터 조작이나 분석에는 제약이 있을 수 있음 |
확장성과 유연성 | 다양한 데이터 포맷을 처리할 수 있는 라이브러리를 지원하며 데이터베이스와 연동하여 작업할 수 있는 등 매우 유연함 | 주로 특정 데이터 형식의 파일(.xlsx, .csv)을 다루는데 제한되어 있음 |
버전 관리 및 자동화 | 버전 관리 시스템(Git)을 사용하여 변경 내역을 관리하고 코드 자체에 주석을 추가하거나 문서화할 수 있어 작업 히스토리 추적에 용이 | 사용자가 직접 수정하기 때문에 변경 사항을 추적하거나 문서화하기 어려울 수 있음 |
3. 데이터 불러오기, 저장하기
Seaborn 라이브러리를 통해 내장 데이터셋을 가지고 올 수 있다.
# pd.read_excel('파일경로/파일명.확장자')
pd.read_excel('./파일명.xlsx') # ./ ==> 현재 내가 있는 위치라는 의미
데이터셋 | 내용 |
iris | 붓꽃의 꽃잎과 꽃받침의 길이와 너비를 포함한 데이터셋 |
tips | 음식점에서의 팁과 관련된 정보를 담고 있는 데이터셋 |
titanic | 타이타닉 호 승객들의 정보를 포함한 데이터셋 |
flights | 연도별 항공편 정보를 담고 있는 데이터셋 |
planets | 외계 행성 발견에 대한 정보를 담고 있는 데이터셋 |
- 인덱스(Index)
각 행 또는 각 요소에 대한 식별자로 0부터 시작하는 숫자뿐만 아니라 임의로 문자로 적용할 수 있다.
특징 | 설명 |
고유성(Uniqueness) | 각 행은 유일한 인덱스 값을 가져야함. 중복된 인덱스 값을 가질 수 없음 |
불변성(Immutability) | 한 번 생성된 인덱스는 변경(수정)할 수 없음 단, 새로운 값을 할당하여 기존 인덱스를 대체하는 것은 가능 |
조작 및 탐색 (Manipulation and Retrieval) |
인덱스를 사용하여 데이터프레임 또는 시리즈의 특정 행을 선택하거나 탐색할 수 있음 |
정렬(Sorting) | 인덱스를 기준으로 데이터프레임 또는 시리즈의 행을 정렬할 수 있음 |
import pandas as pd
# 사용자가 직접 인덱스를 설정한 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']}, index=['idx1', 'idx2', 'idx3'])
#인덱스 확인하기
data.index
# 특정 인덱스의 행에 접근
row = df.loc['idx2']
# 인덱스를 기준으로 데이터프레임 정렬
sorted_df = df.sort_index()
# 인덱스 변경 (대체)
df.index = ['new_idx1', 'new_idx2', 'new_idx3']
# 리스트 형태를 활용해서 인덱스를 새로 입력
data.index = ['1번' , '2번' , '3번']
# reset_index() 의 기본 값은 drop = False 를 가지고 있습니다.
data.reset_index()
# 현재 인덱스를 컬럼으로 변경할 수 있습니다.
# reset_index(drop = True) 명령어를 활용하면,
# 현재 인덱스 값을 컬럼으로 변경하지 않고 인덱스를 초기화할 수 있습니다
data.reset_index(drop=True)
- 컬럼(Column)
데이터프레임의 열(변수)를 나타낸다. 행과 열로 구성되며, 각 열은 서로 다른 종류의 데이터를 담고 있다. 고유한 이름으로 해당 컬럼의 데이터를 식별하는데 사용된다. 숫자, 문자열, 날짜 등 다양한 유형의 데이터를 포함한다.
import pandas as pd
# 데이터프레임 생성
data = {
'이름': ['Alice', 'Bob', 'Charlie'],
'나이': [25, 30, 35],
'성별': ['여', '남', '남']
}
df = pd.DataFrame(data)
# 각 컬럼 출력
print(df['이름']) # '이름' 컬럼 출력
print(df['나이']) # '나이' 컬럼 출력
print(df['성별']) # '성별' 컬럼 출력
# 컬럼명 변경
pd.read_csv('./data/file.csv' , names = [’컬럼명1’, ‘컬럼명2’, … ,‘컬럼명 19’])
#컬럼 확인하기
data.column
#리스트 형태를 활용해서 컬럼명을 새롭게 입력할 수 있습니다.
data.column = ['축구', '농구', '배구', '야구']
data
- 파일이 깨질때
import pandas as pd
# UTF-8 인코딩으로 파일 불러오기
data = pd.read_csv('file.csv', encoding='utf-8')
# ASCII 인코딩으로 파일 불러오기
data = pd.read_csv('file.csv', encoding='ascii')
- 데이터 저장하기
df = 데이터프레임 # 저장하고 싶은 데이터
# pd.to_csv(’파일경로/파일명.확장자’ , index = False)
# pd.to_excel(’파일경로/파일명.확장자’ , index = False)
df.to_csv('./newfile.csv', index = False)
'Today I Learned (TIL) > Python' 카테고리의 다른 글
[TIL] 데이터 전처리 - Pandas(3) (0) | 2024.07.17 |
---|---|
[TIL] 데이터 전처리 - Pandas(2) (0) | 2024.07.17 |
[TIL] Python 베이직 - 1회차 (0) | 2024.07.17 |
[TIL] 데이터 분석 파이썬 종합반 - 5주차(2) (0) | 2024.07.10 |
[TIL] 데이터 분석 파이썬 종합반 - 5주차(1) (0) | 2024.07.10 |