pandas라이브러리는 파이썬 언어로 제작된 데이터 분석용 라이브러리이다.
기존의 데이터 구조보다 기능이 많이 확장되어 다양한 데이터 조작과 가공이
가능하다.
1. pandas의 특징
- 기본적인 통계 데이터 제공
- 없는 수치(NaN=Not a Number) 자동 처리
- 데이터셋 재구조화
- 통합 인덱싱을 활용한 데이터 조작
2. pandas 호출 하기
#기존 numpy와 똑같이 별명을 붙여 호출한다.
import pandas as pd
3. pandas series 데이터 생성
pandas는 pandas series 데이터를 생성 할수 있으며 데이터를 메모리에 저장하면 기존 데이터 구조와 마찬가지로
데이터를 활용한 다양한 함수를 적용할 수 있다.
index = ['eggs', 'apples', 'milk', 'bread']
data = [30, 6, 'Yes', 'No']
groceries = pd.Series(data = data, index=index)
#인덱스를 확인
groceries.index
>>> Index(['eggs', 'apples', 'milk', 'bread'], dtype='object')
#데이터를 확인
groceries.values
>>> array([30, 6, 'Yes', 'No'], dtype=object)
# shape 확인
groceries.shape
>>> (4,)
#차원 확인
groceries.ndim
>>> 1
#데이터 갯수
groceries.size
>>> 4
#저장된 데이터의 타입 확인
groceries.dtype
>>> dtype('O')
# 'apples' 가 groceries 안에 들어있나?
'apples' in groceries
>>>True
4. pandas라이브러리 인덱스
pandas 데이터는 기존 데이터 구조의 인덱스와 다르게 사람이 이해하는 언어로 인덱스를
구성 할수 있다.
#인덱스는 사람용,안보이는 왼쪽에 컴퓨터용 인덱스가 따로 있다
groceries
>>> eggs 30
apples 6
milk Yes
bread No
dtype: object
빨간 네모 친 부분이 인덱스 이며 사람이 이해할수 있는 언어로 되어 있다.
인덱스는 딕셔너리 데이터와 비슷하게 데이터를 인덱스로 호출 할 수 있다.
groceries["milk"]
>>> 'Yes'
#핀다스 인덱스에는 +1을 쓰지 않는다.
groceries[ :"milk"]
>>> eggs 30
apples 6
milk Yes
dtype: object
5. pandas 데이터 연산
pandas 데이터도 numpy와 비슷하게 데이터 단위로 연산이 가능하다.
index = ['apples', 'oranges', 'bananas']
data = [10, 6, 3,]
fruits = pd.Series(data = data, index = index)
>>> apples 10
oranges 6
bananas 3
dtype: int64
fruits = fruits+5
>>> apples 15
oranges 11
bananas 8
dtype: int64
#인덱스단위로 연산이 가능하다.
fruits['oranges'] = fruits['oranges'] -2
fruits
>>> apples 10
oranges 4
bananas 3
dtype: int64
6. Pandas Dataframe
panda 시리즈데이터를 깔끔한 데이터프레임 형식으로 보는것이 가능하다.
이 데이터프레임은 컬럼이 추가되어 기존보다 더 보기 쉬운 형식이 되었다.
import pandas as pd
# We create a dictionary of Pandas Series
items = {'Bob' : pd.Series(data = [245, 25, 55], index = ['bike', 'pants', 'watch']),
'Alice' : pd.Series(data = [40, 110, 500, 45], index = ['book', 'glasses', 'bike', 'pants'])}
df = pd.DataFrame(data= items)
df
그림에 있는것 처럼 위에 가로로 컬럼이 추가된 형식으로 나오게 된다.
데이터 프레임도 다양하게 활용이 가능하다.
#왼쪽의 행부분의 진한글씨: 인덱스
#위쪽의 열부분의 진한글씨: 컬럼
#안쪽에 있는 데이터: values
df.index
>>> Index(['bike', 'book', 'glasses', 'pants', 'watch'], dtype='object')
df.columns
>>> Index(['Bob', 'Alice'], dtype='object')
df.values
>>> array([[245., 500.],
[ nan, 40.],
[ nan, 110.],
[ 25., 45.],
[ 55., nan]])
df.shape
>>> (5, 2)
df.ndim
>>> 2
df.size
>>> 10
#데이터의 정보 자세히 보기
df.info()
>>> <class 'pandas.core.frame.DataFrame'>
Index: 5 entries, bike to watch
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Bob 3 non-null float64
1 Alice 4 non-null float64
dtypes: float64(2)
memory usage: 120.0+ bytes
7.없는 수 NaN
NaN은 Not a Number의 약자로써 numpy에도 있는 기호이다. NaN은 해당 항목에 0도 없는
아예 값이 없다는 것을 뜻한다.
#nan은 Not a Number이다.
np.nan
8. pandas 데이터 엑세스
pandas 데이터도 다른 데이터 구조들처럼 데이터 엑세스가 가능하다.
items2 = [{'bikes': 20, 'pants': 30, 'watches': 35},
{'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
df = pd.DataFrame(data=items2, index = ['store1','store2'])
df
이 데이터 프레임에서 데이터를 가져오는 방법은 3가지가 있다.
1) 컬럼의 데이터를 가져오는 방법 => 변수명 바로 오른쪽에 대괄호 사용
df['bikes']
>>> store1 20
store2 15
Name: bikes, dtype: int64
# bikes 컬럼과 glasses 컬럼을 가져오세요.
df[['bikes','glasses']]
2) 행과 열의 정보로 데이터를 가져오는 방법
(.loc[ , ] 함수로 가져오는 방법)
#위에 item2의 데이터 프레임을 활용한다.
# 스토어1의 팬츠 데이터를 가져오시오.
df.loc[ 'store1','pants' ]
>>> 30
df.loc['store2',['bikes','watches']]
>>> bikes 15.0
watches 10.0
Name: store2, dtype: float64
3) 컴퓨터 상에 행과 열로 데이터를 가져오는 방법
(.iloc[ ,] 함수로 가져오는 방법)
#위에 item2의 데이터 프레임을 따른다.
# iloc로 스토어1의 pants 데이터 가져오기
#이 방법은, 컴퓨터가 매기는 인덱스(오프셋)으로 데이터를 억세스한다.
df.iloc[ 0 , 1 ]
>>> 30
# 스토어2 데이터에서, bikes 부터 watches 까지의 데이터를 가져오시오.
df.iloc[ 1,0:2+1 ]
>>> bikes 15.0
pants 5.0
watches 10.0
Name: store2, dtype: float64
'파이썬 함수' 카테고리의 다른 글
pandas 라이브러리(3) NaN값 다루기 (0) | 2022.11.24 |
---|---|
pandas 라이브러리(2) 데이터프레임 컬럼 추가하기, 데이터프레임 불러오기 (0) | 2022.11.24 |
numpy 라이브러리(5) 2차원 배열 연산 (0) | 2022.11.23 |
numpy 라이브러리(4) 데이터 인덱싱과 boolean 연산 (0) | 2022.11.23 |
numpy라이브러리(3) 연산자 함수 (0) | 2022.11.23 |