Python/Pandas

[Pandas] Pandas 개념

데이터 세상 2022. 4. 25. 23:53

Pandas

데이터 처리와 분석을 위한 파이썬 라이브러리이다.

R의 data.frame을 본떠서 설계한 DataFrame이라는 데이터 구조를 기반으로 만들어졌다.

엑셀의 스프레드시트와 비슷한 테이블 형태를 가진다.

SQL처럼  테이블에 쿼리나 조인을 수행할 수 있다.

SQL, 엑셀 파일, CSV 파일 같은 다양한 파일과 DB에서 읽어들일 수 있다.

 

Pandas 설치

pip install pandas

 

Pandas 데이터 구조

출처: https://medium.com/data-science-365/pandas-for-data-science-part-1-89bc231b3478

Data Structure Dimensionality Spreadsheet Analog
Series 1D Column
DataFrame 2D Single Sheet
Panel 3D Multiple Sheet

 

Series

Python의 목록과 유사한 1차원 데이터를 모델링하는데 사용된다.

Series 객체에는 색인 및 이름을 포함하여 몇 비트 더 많은 데이터가 있다.

특징

  • 레이블 또는 데이터의 위치를 지정한 추출이 가능하다.
  • 산술 연산이 가능하다.
import pandas as pd

s1 = pd.Series([10, 7, 1, 22], index=['a', 'b', 'c', 'd'], name='Name')
>>
a    10
b     7
c     1
d    22
Name: Name, dtype: int64

 

Indexing Summary

Method When to Use
속성 엑세스 이름이 유효한 경우 단일 색인 이름에 대한 값 가져오기 속성 이름
인덱스 엑세스 이름이 아닌 경우 단일 이름에 대한 값 가져오기 / 설정 유효한 속성
.iloc 인덱스 위치 또는 위치별로 값 가져오기 / 설정(반 개방슬라이드 간격)
.loc 색인 레이블로 값 가져오기 / 설정(슬라이스 폐쇄 간격)
.lat 인덱스 위치별로 numpy 배열 결과 가져오기 / 설정
.at 인덱스 레이블로 numpy 배열 결과 가져오기 / 설정
import pandas as pd

s1 = pd.Series([10, 7, 1, 22], index=['a', 'b', 'c', 'd'], name='Name')
s1.iloc[0]
>> 10

s1.loc['a']
>> 10

s1.iloc[0:3]
>>
a    10
b     7
c     1
Name: Name, dtype: int64

s1.loc['a':'c']
>>
a    10
b     7
c     1
Name: Name, dtype: int64

 

DataFrame

행과 열에 레이블을 가진 2차원 데이터이다.

열마다 다른 형태를 가질 수 있다.

테이블형 데이터에 대해 불러오기, 데이터 쓰기가 가능하다.

DataFrame끼리 여러 가지 조건을 사용한 결합 처리가 가능하다.

크로스 집계가 가능하다.

import pandas as pd

ldata1 = [('kim', 20, 180), ('lee', 40, 160), ('oh', 10, 190)]
df = pd.DataFrame(ldata1, columns=['name', 'age', 'height'])

>>
  name  age  height
0  kim   20     180
1  lee   40     160
2   oh   10     190

 

DataFrame 생성 후 개별적으로 각 열 정의

import pandas as pd

df = pd.DataFrame()
df['Name'] = ['Jacky' , 'Steve']
df['Age'] = [35, 14]
df['Driver'] = [True, False]

>>
    Name  Age  Driver
0  Jacky   35    True
1  Steve   14   False

 

새로운 열 또는 행 추가

import pandas as pd
import numpay as np

df = pd.DataFrame(np.arange(6).reshape(2,3), 
				index=['one','two'], 
                columns=['seoul', 'busan', 'incheon'])
>>
     seoul  busan  incheon
one      0      1        2
two      3      4        5

# 새로운 열 추가
df['suwon'] = pd.Series([10, 20], index=['one', 'two'])
>>
     seoul  busan  incheon  suwon
one      0      1        2     10
two      3      4        5     20

# 새로운 행 추가
df.loc['three'] = pd.Series([100, 200, 300, 400], index=['seoul', 'busan', 'incheon', 'suwon'])
>>
       seoul  busan  incheon  suwon
one        0      1        2     10
two        3      4        5     20
three    100    200      300    400

 

반응형

'Python > Pandas' 카테고리의 다른 글

[Pandas] 데이터 정렬하기  (0) 2022.04.26
[Pandas] 데이터프레임 병합  (0) 2022.04.26
[Pandas] 데이터프레임 연결  (0) 2022.04.26
[Pandas] apply 함수, applymap 함수, map 함수  (0) 2021.05.10
[Pandas] Pandas-Profiling  (0) 2021.04.12