Pandas란?

금융 데이터를 계량 분석하기 위해서 개발되었다.

패널 데이터(panel data) 구조를 제공하기 위해 Numpy 위에 구성되도록 개발하였으며 넘파이에서 쉽게 사용할 수 있다.

CSV, Excel, SQL 등 여러 형식의 데이터를 분석하고 처리할 수 있으며

데이터 의 라벨로 데이터를 분석하고 처리할 수 있다.

 

특징

대용량 데이터를 다루기 위해 사용하는 라이브러리

여러 차원의 데이터를 다룰 수 있음

Numpy는 주로 숫자 정보를 다루는 용도로 사용되지만 Pandas다양한 타입의 데이터를 처리하기에 용이함

● 각 Column의 이름을 만들거나 형태를 쉽게 변형할 수 있음

 

Series와 DataFrame

Series: 라벨이 있는 1차원 Array

DataFrame: 라벨이 있는 2차원 data structure 

Excel과 비슷한 Table형태의 데이터 구조라고 생각하면 된다.

 

0,1,2,3 과 같은 세로 라벨을 Index라벨, apples, oreanges와 같은 가로 라벨을 Column라벨이라고 한다.

Index라벨과 Column라벨을 제외한 부분이 모두 Data이다.

 

 

Series

● 가장 기본적인 Pandas의 데이터 구조

● Numpy의 Array와 유사한 형태

● 1차원 배열로 데이터를 저장한다

● 각 데이터의 행은 Index Number를 가지고 있다.

● pd.Series(data = None, Index = None)를 사용하여 생성

 

grades = pd.Series(data = [50,70,90], index = ["Tom","John","Jenny"])
print(grades)

se1 = pd.Series() # 비어있는 시리즈
se2 = pd.Series([1,2,3]) # 숫자 1,2,3이 들어있는 시리즈
se3 = pd.Series([[1,2,3],['a','b','c']]) # 각 배열 [1,2,3], ['a','b','c']자체가 요소인 시리즈

## 출력
Tom      50
John     70
Jenny    90
dtype: int64

 

Series 생성시 Dictionary를 사용하면 Dictionary의 key값이 index, value값이 data로 지정된다.

DataFrame

● 시리즈의 집합, 2차원 배열

● 각 열(Column)에 각 Series들이 모여 하나의 DataFrame이라는 객체를 형성

● 각 행(Row)는 각 Column에 해당하는 값들을 가짐

● df = pd.DataFrame(data = dic, index = range(1,5)) 등의 형태로 생성

 

df = pd.DataFrame([10,20,30]) # 데이터 프레임 생성
print(df)
print()

# 2차원 배열로 저장되기에 Dictionary형태로 입력 가능
# 각 dictionary의 value들은 모두 같은 길이를 가져야 함
df = pd.DataFrame({'A':[1,2,3], 'B':[10,20,30],'C':[100,200,300]})
print(df)

## 출력
    0
0  10
1  20
2  30

   A   B    C
0  1  10  100
1  2  20  200
2  3  30  300

 

Dictionary로부터 key = column, value = 해당 column의 값으로 지정되며 인덱스는 따로 설정해야 한다.

 

 

**중요**

DataFrame은 한 개의 column만 선택하면 Series객체로 반환한다.

ex)

df = pd.DataFrame({'A':[1,2,3], 'B':[10,20,30],'C':[100,200,300]})
a = df['A']
print(type(a))

## 출력
pandas.core.series.Series

 

 

파일을 DataFrame으로 불러오기

from .csv file

df = pd.read_csv('파일 경로')

from excel file

df = pd.read_excel('파일 경로')


대용량 데이터 Viewing을 위한 함수들

df.head(): DataFrame 제일 처음 행부터 일부를 보여줌
df.tail(): DataFrame 제일 뒷 행부터 일부를 보여줌
df.index: DataFrame의 행 라벨(index)정보를 보여줌
df.columns: DataFrame의 열 라벨(columns)정보를 보여줌
df.describe(): DataFrame 데이터의 기초 통계 정보를 보여줌(평균, 표준편차 등)
df.info(): DataFrame의 index, column, datatype 등의 정보를 보여줌
df['column'].value_counts(): 특정 column의 개수를 세어서 보여줌
df.nlargest() / df.nsmallest(): 특정 column의 가장 큰 순서(작은 순서) 대로 가져 옮
df['column'].unique(): 특정 column의 유일한 값들을 보여줌
df.hist(): DataFrame의 각 column들의 데이터를 히스토그램으로 나타내 줌
df['column'].hist(): 특정 column의 데이터를 히스토그램으로 나타내 줌
df.sample(): DataFrame의 데이터 일부(행)을 sampling해서 가져 옮
df.filter(): DataFrame을 조건을 걸어 일부 데이터를 가져 옮

 

위의 함수들이 자동으로 외워질 정도가 되야지 DataFrame을 조작하고 원하는 정보를 뽑아낼 수 있다.

 

 

'💂군대 > KAIST ICT Academy' 카테고리의 다른 글

[Numpy] Random Number generation  (2) 2024.11.10
[Numpy] Boolean Masking  (1) 2024.11.09
[Numpy] Array Indexing  (2) 2024.11.09
[Numpy] Broadcasting  (0) 2024.11.03
[Numpy] Array manipulation  (0) 2024.11.02
루오