판다스 (Pandas)
판다스(공식 홈페이지)는 판다와 관련이 없다. 판다스는 패널(panel) 데이터(data)를 다루는 라이브러리라 Pan(panel)da(data)s 이다. R이 이러한 방식의 데이터를 주로 다루는데, 판다스는 파이썬에서 R과 같이 데이터를 다룰 수 있도록 도와주는 라이브러리라 생각하면 된다. 데이터사이언스와 데이터분석의 기본적으로 사용되는 라이브러리이며, 다양한 포맷의 데이터를 불러와 처리하는데, csv, Excel, SQL 데이터베이스 등 데이터를 처리할 수 있다.
import pandas as pd
판다스는 기본적으로 pd로 바꿔 불러오는 것이 관례이다.
간단한 판다스 관련된 여러 함수와 메소드를 간략하게 정리한 이 pdf를 참고하면 좋다.
시리즈 (Series)
1차원 배열과 유사한 형태이다. Series
(참고링크)를 통해 생성한다. 리스트, 딕셔너리 등을 시리즈로 변환하여 사용하는 것이 일반적인데, 예를 들어 아래와 같은 리스트를 시리즈로 변형할 수 있다.
temp_list = [1, 2, 3]
temp_Series = pd.Series(temp_list)
그렇다면 temp_Series
는 다음과 같다.
0 1
1 2
2 3
dtype: int64
앞에 나오는 0, 1, 2 는 인덱스로 다음과 같이 설정도 가능하다.
temp_list = [1, 2, 3]
temp_Series = pd.Series(temp_list, index=[1, 2, 3])
그렇다면 temp_Series
는 다음과 같다.
1 1
2 2
3 3
dtype: int64
딕셔너리를 시리즈로 변환하는 것은 다음과 같이 할 수 있다.
temp_dictionary = {1: 10, 2: 20}
temp_Series = pd.Series(temp_dictionary)
그렇다면 temp_Series
는 다음과 같다.
1 10
2 20
dtype: int64
즉 키가 인덱스가 되고, 값이 시리즈 값이 된다. 만약 index
를 설정한다면, 설정된 인덱스가 딕셔너리에 존재하면 값을 저장하고, 존재하지 않는다면 NaN
으로 처리한다. 예를 들어 다음과 같이 시리즈를 만들어보자.
temp_dictionary = {1: 10, 2: 20}
temp_Series = pd.Series(temp_dictionary, index=[1, 3, 4])
그렇다면 temp_Series
는 다음과 같다.
1 10.0
3 NaN
4 NaN
dtype: float64
그 외 매개변수로 dtype
, name
등을 설정할 수 있다. 자세한 내용은 위 시리즈 명령어 참고링크에 접속하면 나와있다.
데이터프레임 (DataFrame)
데이터프레임은 엑셀의 표를 생각하면 편한데, 행과 열로 이루어진 자료형이다. 대부분 판다스를 이용해 자료를 다루면 데이터프레임으로 다루기 때문에 판다스의 핵심이라 할 수 있다.
DataFrame
(참고링크)을 통해 생성한다. 리스트, 딕셔너리 등을 데이터프레임으로 변환하여 사용 가능한데, 많은 경우 csv, 엑셀 파일, SQL 데이터 등을 가져와서 사용한다. 예를 들어 아래와 같이 리스트를 데이터프레임으로 만들 수 있다.
temp_list = [[10, 20], [11, 21]]
temp_DataFrame = pd.DataFrame(temp_list)
그렇다면 temp_DataFrame
는 다음과 같다.
0 1
0 10 20
1 11 21
왼쪽이 행의 인덱스이고, 위쪽이 열의 이름이다. 아래와 같이 설정도 가능하다.
temp_list = [[10, 20], [11, 21]]
temp_DataFrame = pd.DataFrame(temp_list, index=[1, 2], columns=["수학", "영어"])
그렇다면 temp_DataFrame
는 다음과 같다.
수학 영어
1 10 20
2 11 21
즉 index
매개변수는 행의 인덱스를, columns
매개변수는 열의 이름을 설정해준다.
딕셔너리를 데이터프레임으로 변환하는 것은 다음과 같이 가능하다.
temp_dictionary = {1:[10, 11], 2:[10, 12]}
temp_DataFrame = pd.DataFrame(temp_dictionary)
그렇다면 temp_DataFrame
는 다음과 같다.
1 2
0 10 10
1 11 12
역시 인덱스와 열의 이름을 설정할 수 있다. 단 딕셔너리를 통해 데이터프레임을 만들 때 딕셔너리의 키가 열의 이름으로 설정되기 때문에 설정한 열의 이름과 같은 키가 있다면 원래 처럼 생성하고, 없다면 NaN
을 설정한다.
temp_dictionary = {1:[10, 11], 2:[10, 12]}
temp_DataFrame = pd.DataFrame(temp_dictionary, index=[1, 2], columns=[1, "수학"])
그렇다면 temp_DataFrame
는 다음과 같다.
1 수학
1 10 NaN
2 11 NaN
그 외에도 딕셔너리나 리스트가 아니라 넘파이의 ndarray
객체를 넣어서 데이터프레임을 만들 수도 있다.
temp_ndarray = np.array( [ [ 1, 2, 3, 4 ] ,
[ 5, 6, 7, 8 ] ] )
temp_DataFrame = pd.DataFrame(temp_ndarray)
그렇다면 temp_DataFrame
는 다음과 같다.
0 1 2 3
0 1 2 3 4
1 5 6 7 8
그 외에도 dtype
을 설정할 수 있다. 자세한 내용은 위 데이터프레임 명령어 참고링크에 접속하면 나와있다.
'Data Science > Pandas' 카테고리의 다른 글
[Pandas] 값 혹은 인덱스를 기준으로 데이터프레임 정렬 (0) | 2024.12.29 |
---|---|
[Pandas] 판다스를 통한 데이터 시각화(data visualization) (0) | 2024.12.28 |
[Pandas] 데이터프레임 기초 통계량 확인 (0) | 2024.12.26 |
[Pandas] 데이터 정보 확인과 미리보기 및 결측치 확인과 처리 (0) | 2024.12.25 |
[Pandas] 판다스 csv, 엑셀(xlsx, xls) 불러오기 및 저장하기 (0) | 2024.12.25 |