AI SCHOOL/Python

[Python] pandas 기초

moru_xz 2023. 1. 12. 09:34

Pandas

# 필요한 라이브러리를 로드
# pandas, numpy를 불러온다

import pandas as pd
import numpy as np

df["약품명"] = ["소화제", "감기약", "비타민", "digestive", 
             "Omega3", "오메가3", "vitamin", "Vitamin"]
df["가격"] = 3500

type(df['가격'])은 시리즈

type(df) 는 DataFrame

type(np.nan)은 float

 

삭제

axis = 0 -> 행

axis = 1 -> 칼럼

df["종류2"] = "전문의약품"
df = df.drop(labels="종류2", axis=1)
df

 

데이터 요약

df.info() -> 데이터 프레임의 정보

df.shape -> 데이터 프레임의 크기 출력 (행, 열)

df.dtypes -> 데이터의 타입만 봄

df.describe() -> 데이터프레임의 요약정보 가져옴

- 수치형 데이터의 기술통계 값
- 'count'=> 결측치를 제외한 빈도수,- 'mean'=> 평균, 
- 'std' => 표준편차, 
- 'min' => 최솟값, 
- '25%', '50%', '75%', => 값을 순차정렬 했을 때 앞에서부터 25%, 50%, 75% 위치에 있는 값
    => 사분위수, 1사분위수, 2사분위수(=중앙값, =중간값, =median), 3사분위수
- 'max' => 최댓값

 

 

- 범주형 데이터의 기술통계 값

- df.describe(include="object")
- 'count' => 결측치를 제외한 빈도수, 
- 'unique' => 유일값, 
- 'top' => 최빈값(mode), 'freq'=> 최빈값의 빈도수
- df.describe(include="O")

 

2개 이상의 칼럼명 가져오기

df[['약품명', '가격']]

 

데이터 가져오기 

# 인덱스 번호로 첫번째 데이터 가져오기
df.loc[0]
df.loc[[0, 1, 2]]

# loc[행, 열]
df.loc[0, "약품명"]
df.loc[[0, 1, 2], ["약품명", "가격"]]
# 0번 인덱스의 1번째 컬럼인 가격
df.iloc[0, 1]
# 행, 열
df.iloc[:5, :2]

특정 단어가 들어가는 데이터 가져오기

df["약품명"].str.contains("비타|vita")

# 약품명을 모두 소문자로 만듭니다.

df["약품명_소문자"] = df["약품명"].str.lower()

- 파이썬의 정규표현식에서는 |는 or를 &는 and를 의미

- 파이썬 대소문자 구분 o 

 

특정 값 들어있는 데이터 프레임 가져오기

# 특정 금액 이하의 가격에 해당되는 데이터프레임을 가져옵니다.

df[df["가격"] <= 3500]

정렬

# sort_values 를 통해 정렬

df.sort_values(by=["약품명_소문자", "가격"], ascending=[False, True])

 

파일 저장

# to_csv 를 통해 csv 파일로 저장합니다.

df.to_csv("pandas_example.csv", index=False)

# 저장된 csv 파일을 읽어옵니다.

pd.read_csv("pandas_example.csv")

 

 

+)

# help(df.drop)
# shift + tab => Jupyter 에서 사용하는 도움말 단축키 입니다.
# ? => help 도움말
# ?? => 소스코드 보기