pandas는 python 패키지로 데이터 분석시 많이 사용된다. pandas 공식 홈페이지에 튜토리얼이 아주 자세하게 설명되어 있다. 이 설명에 조금 살을 붙여서 좀 더 잘 이해할 수 있도록 정리해 보려고 한다.
그럼 시작!
목차
pandas 패키지를 사용하고 싶을 때, 명령어 import
를 써서 불러온다. 보통 pandas의 가명으로 pd
를 많이 쓴다.
import pandas as pd
pandas data table
💁♂️ 타이타닉의 승객 데이터를 저장한다고 하자. 많은 승객에 대해서, 나는 name(characters), age(integers), 그리고 sex(male/female) 데이터를 알고 있다.
df = pd.DataFrame(
{
"Name": [
"Braund, Mr. Owen Harris",
"Allen, Mr. William Henry",
"Bonnell, Miss. Elizabeth",
],
"Age": [22, 35, 58],
"Sex": ["male", "male", "female"],
}
)
df
일반적으로 table에 데이터를 저장할 때, DataFrame
을 생성한다. 파이썬 list 딕셔너리를 사용해서, 딕셔너리의 keys는 column의 header가 되고, 리스트 안의 값들은 DataFrame
의 columns이 된다.
✨ DataFrame
은 columns안에 다른 타입의 데이터(characters, integers, floating point values, categorical data and more)를 저장할 수 있는 2차원 데이터구조이다. 이는 spreadsheet, SQL table, 혹은 R에서 data.frame
과 비슷하다.
- 문제에서 table은 3개 columns을 가지고 있고 각각은 column label이 있다. column labels은 각각
Name
,Age
,Sex
이다. - column
Name
은 string인 문자 데이터가 들어있고, columnAge
에는 숫자가, colunmSex
에는 문자 데이터가 들어있다.
DataFrame의 각 column은 Series이다
💁♂️ 만약 colunm Age
에 있는 데이터에만 관심이 있다고 가정해 보자.
df["Age"]
pandas DataFrame
의 single column만을 선택할 때, 그 결과는 pandas Series
라 한다. column을 선택하기 위해, column label은 []
로 감싸서 사용한다.
👉 만약 당신이 Python dictionaries에 익숙하다면, single column을 선택하는 것은 key로 dictionary value를 선택하는 것과 비슷하다.
Series
를 새로 생성할 수도 있다.
ages = pd.Series([22, 40, 58], name="Age")
ages
Series
는 column label을 가지고 있지 않다. 왜냐하면 DataFrame
의 single column이기 때문이다. 또한 Series는 row label을 가지고 있지 않다.
DataFrame이나 Series를 활용해보자
💁♂️승객의 maximum Age를 알고 싶다.
DataFrame
에서 Age
를 선택한 다음 max()
메소드를 적용해준다.
df["Age"].max()
[Out]: 58
ages.max()
[Out]: 58
Series
에서도 적용된다.
max()
메소드는 DataFrame
과 Series
모두에서 사용 가능하다.
💁♂️ 내 데이터 table에 있는 숫자 데이터에 대해서, 기본적인 통계 정보를 알고 싶을 때
df.describe()
describe()
메소드는 DataFrame
에 있는 숫자 데이터의 quick overview를 제공해 준다. Name
과 Sex
columns은 텍스트 데이터라서, 계산이 안 되기 때문에 default된다.
describe()메소드 설명: 링크
✨ Returns 값 설명
DataFrame.count
: NA, null값 다 포함한 개수를 count
DataFrame.max
, DataFrame.min
: 최대, 최솟값
DataFrame.mean
: 평균값
DataFrame.std: 표준편차
percentiles(백분위수) 25
, 50
, 75
: 50은 중앙값(median)을 의미함
👉 중앙값과 평균의 차이
평균(mean)은 변량을 모두 더한 후 변량의 개수로 나눈 값이다. 중앙값(median)은 전체 변량을 순서대로 정렬했을 때, 정중앙에 위치한 수이다.
👉 특수값 (NA, NaN, NULL, INF)에 대해 알아보자
NA: Not Available의 줄임말. 사용할 수 없는 데이터를 뜻하며, 일반적으로 결측값을 의미함.
NaN: Not a Number의 줄임말. 정의되지 않거나 알 수 없는 결과를 수학 연산으로 나타내는데 사용. * NaN은 사용할 수 없는 숫자 데이터, NA는 사용할 수 없는 모든 유형의 데이터
NULL: 대상이 없음
INF: infinite의 줄임말. inf는 양의 무한대, -inf는 음의 무한대
🐢 요약 🐢
• package를 불러오기: import pandas as pd
• 데이터의 table은 DataFrame
으로 저장됨
• DataFrame
의 각 column은 Series
임.
• DataFrame
이나 Series
에 메소드를 적용시켜서 많은 일들을 수행할 수 있음!