Pandas

2024. 9. 6. 15:23·KT AIVLE School/Python프로그래밍 & 라이브러리

 

데이터프레임이란?

관계형 데이터베이스의 테이블 또는 엑셀 시트 (2차원 구조)

시리즈란?

하나의 정보에 대한 데이터의 집합

데이터 프레임에서 하나의 열을 떼어낸 것!

 

1. 데이터프레임 생성

import pandas as pd

 

보통 csv를 가져와 데이터 프레임 생성

# 데이터 읽어오기
path = 'https://raw.githubusercontent.com/DA4BAM/dataset/master/titanic_simple.csv'
data = pd.read_csv(path)

# 상위 10행만 확인
data.head(10)

 

2. 테이터프레임 정보 확인

  • df.head() : 앞쪽 데이터
  • df.tail() : 뒤쪽 데이터
  • df.info() : 인덱스, 열, 값 개수, 데이터 형식 - 그냥 info는 데이터를 간략하게 표시
  • df.describe() : 기초 통계 정보 확인
  • display() : print를 대신해서 df를 보여줌

 

  • data.columns : 열 확인
  • data.shape : 데이터프레임 모양 확인
  • data.isna().sum() : nan갯수 확인
  • 시리즈.value_counts() : 값별 갯수 확인

 

  • data.columns.values : np.array형태로 열 확인
  • list(data) : 리스트로 확인
  • data.dtypes : 자료형 확인

 

3. 데이터 정렬

  • sort_values('~',ascending=True)
  • reset_index(drop = True)

by='특정 열 이름'

asscending=False(내림차순), True(오름차순 - default)

# 두가지 열로 정렬하는데, 상위 10개만 조회
temp = data.sort_values(by=['JobSatisfaction', 'MonthlyIncome'], ascending=[True, False])

#가장 왼쪽에 나오는 열 인덱스를 reset
temp.reset_index(drop = True)

 

 

4. 고유 값 확인

  • data['Maritalstatus'].unique() : 고유 값 확인하여 배열로 표현
  • data['Maritalstatus'].value_counts() : 고유 값 개수 확인

 

pd.read_csv() > df >

1.기본정보확인 head, shape, list

정렬 df.sort_values()

 

 

5. 데이터 프레임 조회

5-1. 특정 열 조회

- 시리즈로 조회(1차원)

# 두가지 방법
Data['Object'] #권장
Data.Object

 

- 데이터프레임으로 조회(2차원)

컬럼 이름을 리스트로 입력

# 두가지 방법
Data[['Object']] #권장
Data.Object

 

5-2. 조건으로 조회 

  • data.loc[행조건, 열이름(생략가능)]
# 조건절(조건문)의 결과는 True, False
data['DistanceFromHome'] > 10

# DistanceFromHome 열 값이 10 보다 큰 행 조회
data.loc[data['DistanceFromHome'] > 10]

# 이것도 되지만 loc를 권장!!
data[data['DistanceFromHome'] > 10]


# 일부 열만 따로 빼기
data.loc[ : , ['~','~']]

# 여러 조건
data.loc[(data['DistanceFromHome'] > 10) & (data['JobSatisfaction'] == 4)]

 

여러 개의 조건을 사용하려면 (조건1) & (조건2) 형태로 적는다.

 

  • data['열이름'].isin()
data.loc[ data['열이름'].isin(['~~~','~~~']),'열이름']

 

 

  • data['열이름'].between(1,2, inclusive='both')
data.loc[ data['열이름'].between(1,2, inclusive='both')]

 

등호가 있는 부분을 정할 수도 있다.

inclusive = 'both'  or 'left', 'right', 'neither'

 

5-3. 정규표현식으로 조회

예시) '([a-zA-Z]+)\.'

data['열이름'].str.extract('정규표현식')

 

6. 데이터프레임 집계

6-1. 집계 함수

합 : sum()

평균 : mean() - avg()가 아님!

최댓값 : max()

최솟값 : min()

개수 : count()

표준편차 : std()

 

6-2. groupby()

집계별로 조회

data.groupby('집계기준변수', as_index=False)['대상변수'].집계함수()
# 3. 2016년 월별, 매출액과 총 판매수량(sum)을 조회. (.groupby)
sales.loc[sales['Year']==2016].groupby('Month',as_index=False)[['Amt','Qty']].sum()

 

as_index=True : 집계한 변수를 인덱스로 쓸거인지 물어봄(True가 디폴트)

 

[['변수']] : 데이터프레임

['변수'] : 시리즈

각각 True, False
defalt 값

dropna : null값은 빼고 계산하기

 

 

6-3. agg()

data.groupby('Month', as_index = False)[['Ozone', 'Wind','Temp' ]].agg(['max', 'min', 'mean', 'std'])

 

'KT AIVLE School > Python프로그래밍 & 라이브러리' 카테고리의 다른 글

Numpy  (0) 2024.09.06
데이터 분석/모델링을 위한 데이터 구조  (1) 2024.09.05
함수 생성 및 활용  (1) 2024.09.05
흐름 제어 (조건문과 반복문)  (0) 2024.09.05
자료형 (list, dictionary, tuple)  (3) 2024.09.05
'KT AIVLE School/Python프로그래밍 & 라이브러리' 카테고리의 다른 글
  • Numpy
  • 데이터 분석/모델링을 위한 데이터 구조
  • 함수 생성 및 활용
  • 흐름 제어 (조건문과 반복문)
Rabet
Rabet
  • 블로그 메뉴

    • 관리자
    • 글쓰기
  • Rabet
    卯
    Rabet
  • 전체
    오늘
    어제
    • Root (139)
      • KT AIVLE School (85)
        • Start (4)
        • Python프로그래밍 & 라이브러리 (6)
        • 데이터 처리 및 분석 (7)
        • 데이터 분석 및 의미 찾기 (7)
        • 웹크롤링 (10)
        • 머신러닝 (10)
        • 딥러닝 (6)
        • 시각지능 딥러닝 (10)
        • 언어지능 딥러닝 (6)
        • JAVA (4)
        • SQL (2)
        • 가상화 클라우드 (5)
        • 프로젝트 (8)
      • QA (2)
        • 오류사항 (1)
      • 웹공부 (14)
        • SPRING (11)
        • React (1)
      • 코딩 알고리즘 스터디 (23)
      • 코딩테스트 (9)
        • JAVA (8)
        • HTML (1)
      • CS공부 (3)
      • 자격증공부 (3)
        • 정보처리기사 (1)
        • 컴퓨터활용능력 1급 (1)
        • AICE Associate (1)
        • CSTS (0)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Rabet
Pandas
상단으로

티스토리툴바