본문 바로가기
Deep Learning

Pandas 기초 1: Series와 DataFrame 다루기

by 자라자 2020. 9. 1.

Pandas란?

pandas는 `Series`나 `Dataframe`으로 데이터를 처리할 수 있도록 돕는 강력한 라이브러리입니다. Juypter 창에서 아래와 같이 import해서 사용할 수 있습니다.

import pandas as pd

`Series`는 index와 value로 구성되어있는 한 줄짜리 표라고 생각하시면 됩니다. `Dataframe`은 Series를 열 방향으로 붙여 만든 데이터 구조로 2차원 배열과 비슷합니다.

 

Series 만들기

세 가지 방법으로 Series를 만들 수 있습니다. value만 주면 index가 자동으로 0부터 붙고, index를 붙일 수도 있고, dictionary로 줄 수도 있습니다.

1) value만 주기

s1=pd.Series(data=['랑','꾼','의','리','뷰'])
s1

2) index 주기

s2=pd.Series(data=['랑','꾼','의','리','뷰'],index=['어','서','오','세','요'])
s2

3) dictionary 주기

s3=pd.Series(data={'사':'입','전':'력','으':'하','로':'기'})
s3

4) values 출력

`values`를 이용하면 값들을 추출할 수 있으며, `numpy.ndarray`로 반환이 됩니다.

print(s3.values)
type(s3.values)

DataFrame 만들기

1) 이중리스트로 만들기

아래의 예시처럼 `data`에 이중리스트로 값들을 할당하고 `index`와 `columns`로 행과 열의 이름을 붙일 수 있습니다.

d1=pd.DataFrame(data=[['3000원','2500원','1500원'],['2800원','2700원','1300원']],
                      index=['A마트','B마트'],columns=['우유','맥주','요거트'])
d1

2) dictionary로 만들기

dic={'우유':['3000원', '2800원'], '맥주':['2500원','2700원'],'요거트':['1500원','1300원']}
d1=pd.DataFrame(data=dic, index=['A마트','B마트'])
d1

 

csv 파일 다루기

1. csv파일 불러오기

`csv`란 Comma-Separated-Value로 쉼표로 값이 구분되어있는 자료입니다.

`pd.read_csv()`로 읽어올 수 있는데, input값으로 `절대경로`를 넣을 수도 있고 `상대경로`를 넣을 수도 있습니다. `절대경로`는 쉽게 말해 주소창에 나오는 경로이고 `상대경로`는 해당 폴더로부터의 상대적 위치입니다. `./`는 현재 경로를 의미합니다.

titanic.csv
0.06MB

위의 titanic.csv로 예제를 진행해보겠습니다. 저는 Jupyter lab 상에서 진행했습니다.

1) 상대 경로로 불러오기

df = pd.read_csv('./titanic.csv')
df

ipynb와 같은 위치에 csv파일을 넣어줬습니다.

 

2) 절대경로로 불러오기

df = pd.read_csv('C:/Users/ku96k/9주차/titanic.csv')
df

같은 결과가 출력됩니다. `역슬래쉬(\)`가 보통 주소창에 입력되어있는데 이를 `슬래쉬(/)`로 바꿔줘야 합니다.

 

 

2. csv파일 저장하기

`to_csv()`로 파일을 저장할 수 있습니다. `index`의 default값이 True이기 때문에 Unnamed라는 것이 붙는데, 이를 False로 지정해주면 깔끔하게 저장이 됩니다.

df.to_csv('./save_test.csv')
pd.read_csv('./save_test.csv')

#index=False 설정 시
df.to_csv('./save_test.csv',index=False)
pd.read_csv('./save_test.csv')