판다스(Pandas)
- 파이썬 데이터 처리를 위한 라이브러리
- Pandas는 pd라는 명칭으로 import 하는 것이 관례
import pandas as pd
- 데이터 구조 종류
: 시리즈(Series), 데이터프레임(DataFrame), 패널(Panel)
시리즈(Series)
- 1차원 배열의 값(values)에 각 값에 대응되는 인덱스(index)를 부여할 수 있는 구조
import pandas as pd
sr = pd.Series([17000, 22000, 1000, 5000], index=["피자", "치킨", "콜라", "하이볼"])
print("시리즈 출력 :")
print('-'*15)
print(sr)
시리즈 출력 :
---------------
피자 17000
치킨 22000
콜라 1000
하이볼 5000
dtype: int64
print("시리즈의 값 : {}\n".format(sr.values))
print("시리즈의 인덱스 : {}".format(sr.index))
시리즈의 값 : [17000 22000 1000 5000]
시리즈의 인덱스 : Index(['피자', '치킨', '콜라', '하이볼'], dtype='object')
데이터프레임(DataFrame)
- 행과 열을 가지는 2차원 리스트를 매개변수로 전달
- 열(columns), 인덱스(index), 값(values)으로 구성
values = [[1,2,3], [4,5,6], [7,8,9]]
index = ['one', 'two', 'three']
columns = ['A', 'B', 'C']
df = pd.DataFrame(values, index=index, columns=columns)
print("데이터프레임 출력 :")
print('-'*15)
print(df)
데이터프레임 출력 :
---------------
A B C
one 1 2 3
two 4 5 6
three 7 8 9
print("데이터프레임의 값 :")
print('-'*15)
print(df.values)
print("\n데이터프레임의 인덱스 : {}".format(df.index))
print("\n데이터프레임의 열이름 : {}".format(df.columns))
데이터프레임의 값 :
---------------
[[1 2 3]
[4 5 6]
[7 8 9]]
데이터프레임의 인덱스 : Index(['one', 'two', 'three'], dtype='object')
데이터프레임의 열이름 : Index(['A', 'B', 'C'], dtype='object')
- 리스트(List)로 데이터프레임 생성
data = [
['50', 'Steve', 99],
['51', 'James', 60],
['52', 'Tony', 81],
['53', 'Choi', 47],
['54', 'Jin', 100],
]
# 열 이름 지정
df = pd.DataFrame(data, columns=['학번', '이름', '점수'])
print(df)
학번 이름 점수
0 50 Steve 99
1 51 James 60
2 52 Tony 81
3 53 Choi 47
4 54 Jin 100
- 딕셔너리(Dictionary)로 데이터프레임 생성
data = {
'학번':['50', '51', '52', '53', '54'],
'이름':['Steve', 'James', 'Tony', 'Choi', 'Jin'],
'점수':[99, 60, 81, 47, 100]
}
df = pd.DataFrame(data)
print(df)
학번 이름 점수
0 50 Steve 99
1 51 James 60
2 52 Tony 81
3 53 Choi 47
4 54 Jin 100
- 데이터프레임 조회
- df.head(n)
: 앞 부분의 데이터 n개 확인
: n의 디폴트값은 5
print(df.head(3))
학번 이름 점수
0 50 Steve 99
1 51 James 60
2 52 Tony 81
- df.tail(n)
: 뒷 부분의 데이터 n개 확인
: n의 디폴트값은 5
print(df.tail(3))
학번 이름 점수
2 52 Tony 81
3 53 Choi 47
4 54 Jin 100
- df['열 이름']
: 해당되는 열 데이터 확인
print(df['이름'])
0 Steve
1 James
2 Tony
3 Choi
4 Jin
Name: 이름, dtype: object
외부 데이터 읽기
- Pandas는 csv, 텍스트, Excel, SQL, HTML, JSON 등 다양한 데이터 파일을 읽을 수 있음
- pd.read_csv()
: csv 파일을 읽어옴
# iris csv 파일 읽어옴
df = pd.read_csv('data/iris3.csv')
print(df.head())
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa
판다스 프로파일링(Pandas-Profiling)
- 데이터 내 값의 분포, 변수 간의 관계, Null 값과 같은 결측값(missing values) 존재 유무 등을 파악
- 방대한 양의 데이터를 가진 데이터프레임을 .profile_report()로 탐색
pip install -U pandas-profiling
판다스 프로파일링 실습
- 와인 데이터 적용
import pandas as pd
import pandas_profiling
data = pd.read_csv('data/wine.csv', encoding='latin1')
data[:5]
- 프로파일링 적용
: 개요, 변수, 상세사항, 상관계수, 히트맵, 수지도 등 확인 가능
data.profile_report()
'AI > NLP' 카테고리의 다른 글
[라이브러리] 맷플롯립(Matplotlib) - 라인 플롯, 축 레이블, 범례 삽입 (0) | 2023.07.07 |
---|---|
[라이브러리] 넘파이(Numpy) - ndarray, 메소드, 슬라이싱, 정수 인덱싱 (0) | 2023.07.07 |
Word Embedding과 Word2Vec (0) | 2023.07.03 |
LSTM(Long Short-Term Memory) (0) | 2023.07.03 |
RNN(Recurrent Neural Network) (0) | 2023.06.29 |