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을 조작하고 원하는 정보를 뽑아낼 수 있다.
다음에는 DataFrame들의 기초 통계량 확인, 결측치 처리 및 column연산에 대해 포스팅하겠습니다.
'💂군대 > 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 |