Post

[Pandas 기초] 1. DataFrame 생성 및 불러오기

Series와 DataFrame에 대해 간단하게 알아 본 후, Python Library 중 하나인 Pandas에서 Series와 DataFrame을 생성 및 불러오는 방법을 알아보자.

Pandas

  • 구조화된 데이터 처리를 지원하는 Python 라이브러리
  • 고성능 array 계산 라이브러리인 Numpy와 통합하여, 강력한 스프레드시트처리 기능을 제공
  • 인덱싱, 연산용 함수, 전처리 함수 등을 제공함
  • 데이터 처리 및 통계 분석을 위해 사용

Series

  • 하나의 정보에 대한 데이터들의 집합
  • index가 추가된 numpy
  • 데이터 프레임에서 하나의 열을 떼어낸 것.(1차원)
  • Pandas의 Series 함수를 통해 생성할 수 있음
1
2
3
4
5
6
7
from pandas import Series, DataFrame
import pandas as pd
import numpy as np

list_data = [1,2,3,4,5]
example_obj = Series(data = list_data)
example_obj
1
2
3
4
5
6
0    1
1    2
2    3
3    4
4    5
dtype: int64
1
2
3
4
list_data = [1,2,3,4,5]
list_name = ["a","b","c","d","e"]
example_obj = Series(data = list_data, index = list_name)
example_obj
1
2
3
4
5
6
a    1
b    2
c    3
d    4
e    5
dtype: int64
1
2
3
dic_data = {"a":1 , "b":2, "c":3, "d":4, "e":5}
example_obj = Series(dic_data, dtype=np.float32, name="example_data")
example_obj
1
2
3
4
5
6
a    1.0
b    2.0
c    3.0
d    4.0
e    5.0
Name: example_data, dtype: float32
1
example_obj["a"]
1
1.0
1
example_obj.values
1
array([1., 2., 3., 4., 5.], dtype=float32)
1
example_obj.index
1
Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
1
2
3
example_obj.name = "number"
example_obj.index.name = "alphabet"
example_obj
1
2
3
4
5
6
7
alphabet
a    1.0
b    2.0
c    3.0
d    4.0
e    5.0
Name: number, dtype: float32

DataFrame

  • 데이터 분석에서 가장 중요한 데이터 구조
  • 관계형 데이터베이스의 테이블 또는 엑셀 시트와 같은 형태(2차원 구조)
  • 변수들의 집합 -> 각 열을 변수라고 부름
  • 행 -> 의미 : 분석단위, 다른 말로 : 관측치, 샘플
  • 열 -> 의미 : 정보, 다른 말로 : 변수(feature, target)
  • Pandas 사용 목적이 데이터프레임을 사용하기 위한 목적으로 봐도 된다.
  • 데이터를 처리, 조회, 분석하는 가장 효율적인 방법이 데이터프레임을 사용하는 것
  • 일반적으로 접하게 되는 테이블 형태, 엑셀 형태로 생각하면 된다.
  • 직접 만들 수 있으나 보통은 csv 파일, 엑셀 파일 또는 DB에서 온다.

DataFrame 생성

1
2
3
4
5
6
raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
      'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
      'age': [42, 52, 36, 24, 73],
      'city': ['San Francisco', 'Baltimore', 'Miami', 'Douglas', 'Boston']}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'city'])
df
first_namelast_nameagecity
0JasonMiller42San Francisco
1MollyJacobson52Baltimore
2TinaAli36Miami
3JakeMilner24Douglas
4AmyCooze73Boston

CSV파일 읽어오기

csv 파일로 부터 가져오기

1
2
3
4
5
# 데이터 읽어오기
data = pd.read_csv('airquality_simple.csv')  

# 상위 3행만 확인
data.head(3)
OzoneSolar.RWindTempMonthDay
041190.07.46751
136118.08.07252
212149.012.67453

url로 가져오기

1
2
3
4
5
6
# 데이터 읽어오기
path = 'https://raw.githubusercontent.com/DA4BAM/dataset/master/Attrition_simple2.CSV'
data = pd.read_csv(path)  

# 상위 3개 확인
data.head(3)
AttritionAgeDistanceFromHomeEmployeeNumberGenderJobSatisfactionMaritalStatusMonthlyIncomeOverTimePercentSalaryHikeTotalWorkingYears
00337817Male3Married11691No1114
1035181412Male4Single9362No1110
204261911Male1Married13348No1318
This post is licensed under CC BY 4.0 by the author.

[Numpy] Numpy 기초

[Pandas 기초] 2. DataFrame 탐색