Skip to content

파이썬 라이브러리 pandas #

Find similar titles

6회 업데이트 됨.

Edit
  • 최초 작성자
    yeye
  • 최근 업데이트
    shlee

Structured data

Category
Programming

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)
  • 특정 열에 존재하는 유일값 확인하기:

    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")

Incoming Links #

Related Data Sciences #

Related Articles #

Suggested Pages #

0.0.1_20231010_1_v71