🐼 pandas의 구조
데이터 불러오기
- Tip. 파일 경로 찾는 방법
- Window
- 파일 탐색기(File Explorer)를 사용하여 파일 경로 찾기:
- 파일 탐색기를 열고 원하는 파일 또는 폴더를 찾은 후, 주소 표시줄(Address Bar)에 파일 경로가 표시됩니다. 이 경로를 복사하여 사용하거나, 마우스 오른쪽 버튼을 클릭하고 "속성(Properties)"을 선택하면 파일 또는 폴더의 속성 창에서 경로를 확인할 수 있습니다.
- 명령 프롬프트(Command Prompt)를 사용하여 파일 경로 찾기:
- 명령 프롬프트(cmd)를 열고, cd 명령어를 사용하여 원하는 디렉토리로 이동합니다. 그리고 pwd 명령어를 입력하면 현재 디렉토리의 경로를 확인할 수 있습니다.
- Mac
- Finder를 사용하여 파일 경로 찾기:
- Finder를 열고, 원하는 파일 또는 폴더를 찾은 후, 상단의 경로 표시줄(Address Bar)에 파일 경로가 표시됩니다. 이 경로를 복사하여 사용하거나, 파일 또는 폴더를 선택한 후 마우스 오른쪽 버튼을 클릭하여 "정보 보기(Get Info)"를 선택하면 파일 또는 폴더의 경로를 확인할 수 있습니다.
- 터미널(Terminal)을 사용하여 파일 경로 찾기:
- 터미널을 열고, pwd 명령어를 입력하면 현재 작업 디렉토리의 경로를 확인할 수 있습니다.
- Window
- 엑셀/CSV 데이터 불러오기
- pd.read_csv('./파일명.xlsx')
- pd.read_excel('./파일명.xlsx')
# pd.read_excel('파일경로/파일명.확장자')
# 엑셀 불러오기
pd.read_excel('./파일명.xlsx') # ./ ==> 현재 내가 있는 위치라는 의미
# csv 파일 불러오기
pd.read_csv('./파일명.xlsx')
- 데이터 저장하기
- pd.to_csv(’파일경로/파일명.확장자’ , index = False)
- pd.to_excel(’파일경로/파일명.확장자’ , index = False)
# 시작하기!
# vscode에서 python, jupyter notebook다 설치한 다음에 폴더에 .ipynb(주피터노트북)확장자로 파일 생성
# ctrl + shift + ~ 누르고 terminal켜서 pip3 install pandas 해서 먼저 설치하기 (맥북이라 pip3)
# 다시 주피터노트북
import pandas as pd
import seaborn as sns
# to_csv라는 메서드를 통해 csv파일에 데이터를 저장할 수 있음
# 전처리 끝난 데이터는 이렇게 파일화해서 저장하고 끝내면 됨
data = sns.load_dataset('tips')
# index=False를 통해 왼쪽에 넘버링 없앨 수 있음
data.to_csv("tips_data.csv", index=False)
# 만들 때 못 했다면 불러올 때 없앨 수도 있음
df = pd.read_csv("tips_data.csv",index_col =0)
df
# 파일 저장 경로도 같이 설정할 수 있음. temp 안에 저장
# to_excel이라고 했으면 파일 확장자명도 동일하게 .xlsx로 해야 함
df.to_excel("temp/tips_date.xlsx",index=False)
인덱스(Index)
- 인덱스 : 데이터프레임(DataFrame) 또는 시리즈(Series)의 각 행 또는 각 요소에 대한 식별자
- DataFrame 자료구조에도 인덱스를 설정할 수 있음
- 0부터 시작하는 숫자 뿐아니라 임의로 문자로 적용할 수 있음
- 아예 처음부터 파일 불러올때 , 인덱스를 지정하는 것도 가능
- 인덱스의 특징
- 고유성(Uniqueness): 각 행은 유일한 인덱스 값을 가져야함. 중복된 인덱스 값을 가질 수 없음.
- 불변성(Immutability): 한 번 생성된 인덱스는 변경(수정)할 수 없음. 단, 새로운 값 할당하여 기존 인덱스 대체하는 것은 가능
- 조작 및 탐색(Manipulation and Retrieval): 인덱스를 사용해 데이터프레임 또는 시리즈의 특정 행을 선택하거나 탐색 가능
- 정렬(Sorting): 인덱스를 기준으로 데이터프레임 또는 시리즈의 행을 정렬할 수 있음
- 인덱스 예시
import pandas as pd
# 인덱스를 이렇게 직접 지정할 수도 있음
df = pd.DataFrame({
'A': [1, 2, 3],
'B': ['a', 'b', 'c']
}, index=['idx3', 'idx2', 'idx1'])
#인덱스를 통해 특정 행에 접근할 수 있음
df.loc['idx2']
# 인덱스를 기준으로 데이터프레임 정렬
df.sort_index()
# 인덱스를 다시 지정. A라는 컬럼으로 인덱스를 쓰겠다
df.set_index('A')
# 인덱스에 뭐가 있고, 타입이 뭔지 반환
df.index
# 인덱스 내용 변경
df.index = ['ㄱ','ㄴ','ㄷ']
df
# 인덱스 초기화. 현재 인덱스를 0부터 시작하는 정수로 변경
df.reset_index(drop=True)
# reset_index(drop = True) 명령어를 활용하면,
# 현재 인덱스 값을 컬럼으로 변경하지 않고 인덱스를 초기화할 수 있습니다
컬럼(Column)
- 컬럼
- 데이터프레임(DataFrame)의 열(또는 변수)을 나타냅니다.
- 데이터프레임은 행과 열로 구성되며, 각 열은 서로 다른 종류의 데이터를 담고 있습니다.
- 데이터프레임의 세로 방향에 있는 데이터들을 컬럼이라고 부릅니다.
- 컬럼의 특징
- 고유한 이름(라벨)을 가지고 있으며, 해당 컬럼의 데이터를 식별하는 데 사용
- 특정한 종류의 데이터를 담고 있고 숫자, 문자열, 날짜 등 다양한 유형의 데이터를 포함할 수 있음
- 시리즈(Series) 객체로 구성되어 있으며, 시리즈는 동일한 데이터 유형을 가진 1차원 배열과 유사함
- 데이터프레임의 일부로 간주되며, 해당 열의 데이터를 조작하고 접근할 수 있는 인터페이스를 제공함
- 컬럼 예시
import pandas as pd
# 데이터프레임 생성
data = {
'이름': ['Alice', 'Bob', 'Charlie'],
'나이': [25, 30, 35],
'성별': ['여', '남', '남']
}
df = pd.DataFrame(data)
df
# 각 컬럼 출력
print(df['이름']) # '이름' 컬럼 출력
print(df['나이']) # '나이' 컬럼 출력
print(df['성별']) # '성별' 컬럼 출력
# df 대괄호[컬럼명]
df['이름']
# 컬럼들 출력
df.columns
# 컬럼명 변경
df.columns = ['name','age','gender']
df
# 컬럼명 변경
# 이 때는 df를 다시 선언해줘야 함
df = df.rename(columns = {'name':'이름', 'gender':'남/여'})
df
# 컬럼 추가. 하나로 통일
df['스포츠'] = '축구'
df
# 컬럼 추가. 각 내용 별도로
df['스포츠'] = ['축구','야구','농구']
df
# 칼럼 삭제
# 얘는 df.del이 아니고 del df 대괄호[컬럼명] 구조
del df['스포츠']
df
*추가 학습 자료
판다스 10분 완성 / 10 Minutes to Pandas
Pandas 10분 완성 역자 주 : 본 자료는 10 Minutes to Pandas (하단 원문 링크 참조)의 한글 번역 자료로, 번역은 데잇걸즈2 프로그램 교육생 모두가 함께 진행하였습니다. 데잇걸즈2는 과학기술정보통신
dataitgirls2.github.io