파이썬
라이브러리
pandas
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
Table of Contents
Pandas란? #
- Python 프로그래밍 언어를 기반으로 구축된 빠르고 강력하며 유연하고 사용하기 쉬운 오픈 소스 데이터 분석 및 조작 도구
- 행과 열로 구성된 2차원 데이터를 손쉽게 다룰 수 있는 도구
Pandas 설치 #
아나콘다를 이용하는 경우:
conda install -c anaconda pandas
PyPI를 이용하는 경우:
pip install pandas
라이브러리 이용 방법 #
다른 Python 라이브러리와 마찬가지로 import 명령어를 이용하여 불러오면 되며, 많은 사용자가 pd 란 단어로 줄여서 이용한다.
import pandas as pd
print(pd.__version__)
2.0.1
Pandas 기본 사용 방법: #
DataFrame 선언: #
-
빈 DataFrame 생성:
- index: 생성할 DataFrame의 행 정보
- columns: 생성할 DataFrame의 열 정보
df = pd.DataFrame(index=[0, 1, 2], columns=["a", "b", "c"])
-
List에서 DataFrame 생성 (열 이름 지정 필요):
data = [["A", 1, "ㄱ"], ["B", 2, "ㄴ"], ["C", 3, "ㄷ"]] df = pd.DataFrame(data, columns=["col1", "col2", "col3"]) print(df) col1 col2 col3 0 A 1 ㄱ 1 B 2 ㄴ 2 C 3 ㄷ
-
Dictionary에서 DataFrame 생성:
data = {"col1": ["A", "B", "C"], "col2": [1, 2, 3], "col3": ["ㄱ", "ㄴ", "ㄷ"]} df = pd.DataFrame(data, columns=["col1", "col2", "col3"]) print(df) col1 col2 col3 0 A 1 ㄱ 1 B 2 ㄴ 2 C 3 ㄷ
DataFrame 저장 및 불러오기: #
- 파일로 DataFrame 저장하기:
- sep: 각 열을 구분할 문자 지정. 콤마(,), 탭(\t), 세미콜론{;), 등
-
header: 열 이름을 저장하고 싶으면 True, 데이터만 저장하고 싶으면 False
data = {"col1": ["A", "B", "C"], "col2": [1, 2, 3], "col3": ["ㄱ", "ㄴ", "ㄷ"]} df = pd.DataFrame(data, columns=["col1", "col2", "col3"]) data_dir = "/home/test/data.csv" df.to_csv(data_dir, sep="\t", header=True)
-
파일을 읽어들여 DataFrame 생성:
- sep: 각 열을 구분할 문자 지정. 콤마(,), 탭(\t), 세미콜론{;), 등
- header: 파일을 첫 줄이 열의 이름 정보인 경우 True, 데이터가 바로 나오면 False
- index_col: 행 이름으로 지정할 열 선택.
data_dir = "/home/test/data.csv" df = pd.read_csv(data_dir, sep="\t", header=True, index_col=0) print(df) col1 col2 col3 0 A 1 ㄱ 1 B 2 ㄴ 2 C 3 ㄷ
DataFrame 행/열 선택: #
-
특정 열 선택: 대괄호 안에 선택하고자 하는 열 이름 입력
df[["col1", "col2", ...]]
-
특정 행 선택:
- .loc 이용 시: 행 이름을 기준으로 선별
- .iloc 이용 시: 행 번호 (순서)를 기준으로 선별
df.loc[["col1", "col2", ...], ] df.iloc[[0, 1, ...], ]
-
행/열 통시 선택:
- .loc 이용 시: 행 이름을 기준으로 선별
- .iloc 이용 시: 행 번호 (순서)를 기준으로 선별
df.loc[["col1"], 1] df.iloc[[0], [0]]
그 외 DataFrame 활용 방법: #
-
열 이름을 리스트로 반환하기:
lst_col = list(df)
-
행 이름을 리스트로 반환하기:
lst_index = df.index.values.tolist()
-
특정 열에 있는 값들 리스트로 반환하기:
lst_value = df["col1"].values.tolist()
-
특정 열의 값을 기준으로 DataFrame 정렬하기:
- ascending: 정렬 기준, True: 오름차순, False: 내림차순
df = df.sort_values(by=['col1'], ascending=False)
- ascending: 정렬 기준, True: 오름차순, False: 내림차순
-
특정 열에 존재하는 유일값 확인하기:
lst_col_unique = df["col1"].unique().tolist()
-
특정 열에 존재하는 값 및 해당 값의 수 확인하기:
df["col1"].value_counts()
-
서로 다른 DataFrame 붙이기 (수직으로):
df_conccat_v = pd.concat([df_1, df_2], axis=0)
-
서로 다른 DataFrame 붙이기 (수평으로):
df_conccat_h = pd.concat([df_1, df_2], axis=1)
-
서로 다른 DataFrame를 고윳값을 기준으로 합치기:
- how: 병합할 방법, inner: 겹치는 부분만 (and 조건), outer: 하나만 있어도 (or 조건)
- left/right_index: df_1, df_2의 index를 기준으로 병합할 때, True
- left/right_on: df_1, df_2의 특정 열을 기준으로 병합할 때,
df_merge = pd.merge(df_1, df_2, how="inner", left_index=True, right_index=True) df_merge = pd.merge(df_1, df_2, how="inner", left_on="col1", right_on="col2")