1. import 방법

import pandas as pd                    #pandas 임포트 및 별명 명명
from pandas import Series, DataFrame   #두가지 모듈 부르기 , 엑셀과 비슷한 기능을 해준다

 

2. Series 생성방법 (1)

값과 인덱스를 차례로 []에 넣어주면 됩니다. 인덱스가 뒤에 오는걸 유의

fruit = Series([2500,3800,1200,6000], index=['apple','banana','peer','cherry'])     # 시리즈 객체 생성
fruit

출력>
apple     2500
banana    3800
peer      1200
cherry    6000
dtype: int64

 

Series 생성방법 (2) 딕셔너리로 만들기

 Series(딕셔너리이름) 해주면 됩니다

fruitData = {'apple':2500, 'banana':3800, 'peer':1200, 'cherry':6000}
print(type(fruitData))
fruit = Series(fruitData)
print(type(fruit))
print(fruit)

출력>
<class 'dict'>
<class 'pandas.core.series.Series'>
apple     2500
banana    3800
peer      1200
cherry    6000
dtype: int64

'python > [modules] Pandas' 카테고리의 다른 글

6. 데이터의 기본연산  (0) 2023.04.26
5. DataFrame을 다뤄보자  (0) 2023.04.26
4. DataFrame 객체를 만들기  (0) 2023.04.26
3. Series 객체 다루기  (0) 2023.04.26
1. pandas란?  (0) 2023.04.26

Pandas

1. 데이터를 전처리할 때 가장 많이 사용하는 모듈, numpy의 확장

2. 두가지 객체를 만들 수 있는데, Series 객체는 인덱스(색인)-밸류(값)이 있는 하나의 column, 이 시리즈들이 쭈루룩 붙으면 하나의 표가 될 텐데 그러면 그게 Data frame 객체입니다.

거꾸로 말하자면 데이터 프레임 안에 요소 하나하나는 numpy로 이뤄져있고 이 numpy 요소를 하나하나 모으면 시리즈 객체, 시리즈를 모으면 데이터 프레임입니다.

'python > [modules] Pandas' 카테고리의 다른 글

6. 데이터의 기본연산  (0) 2023.04.26
5. DataFrame을 다뤄보자  (0) 2023.04.26
4. DataFrame 객체를 만들기  (0) 2023.04.26
3. Series 객체 다루기  (0) 2023.04.26
2. pandas를 임포트 하고 Series를 만들어보자  (0) 2023.04.26

기초 통계 함수 이전 알아야 할 개념 : axis

 

axis?

다차원 배열의 차원을 나타내는 매개변수.

각 차원(axis)에 따라 연산이 수행되거나 배열의 모양(shape)이 결정된다. axis는 일반적으로 numpy 함수의 매개변수로 사용됩니다. 예를 들어, numpy.sum() 함수의 경우 axis 매개변수는 어느 축(axis)을 따라 합산을 수행할지 지정한다.

 

axis의 값은 정수이며, 배열의 차원 수에 따라 다릅니다. 예를 들어, 2차원 배열의 경우 axis=0은 행(row) 방향을 의미하고, axis=1은 열(column) 방향을 의미한다. axis=-1은 마지막 차원(axis)을 나타내며, axis=None은 모든 요소를 합산하거나 연산하는 것을 의미한다.

 

즉 연산기능을 쓸 때 axis = 0일때는 세로축을 구하고, axis = 1일때는 가로축 값을 구한다


대표적인 기초 통계 함수 

sum 합계
mean 평균
std 표준 편차: 데이터들이 기준선에 가까운지 측정할 때 주로 사용하며 정확성을 판단할 때 사용. 허나 데이터가 기준선에 촘촘히 붙어있어보여도 데이터 자체 크기가 크지 않아 설득력 없는 자료일 때도 있으니 유의할 것
var 분산(std의 제곱), 데이터의 크기가 크지 않을 때 더 자세히 볼 수 있게 해준다
min 최소값
max 최대값

 

 

예시1. 전체 데이터의 합계 / 동일한 항목끼리의 합계 / 동일한 항목끼리의 평균값

print(redwine.sum()) 
print(redwine.sum(axis=0))            
print(redwine.mean(axis=0))

 

예시2. 각 데이터 항목별 최고점/ 최저점만 뽑기

print(redwine.max(axis=0))             # 최고 점수만 뽑기
print(redwine.min(axis=0))             # 최저 점수만 뽑기

예시3. 0번축만(첫번째 column) 평균 구하기

print(redwine[:,0].mean())                # 전체 데이터 출력인데 0으로 슬라이스 기법으로 0번축만, 평균을 구해라

 

Numpy로 데이터 불러오기

1.colab에서 csv 파일을 불러오고 싶다면 그냥 폴더 창에 드래그 드롭을 해주면 된다.

2. 그 후 np.loadtxt(fname='', delimiter = '', skiprows =n) 로 파일을 불러와준다.

여기서 fname은 파일 이름, delimiter은 파일에서 데이터의 구분자(, 이나 ;), skiprow는 n번째 줄은 건너뛰라는 명령이다.

 


<예시용 데이터>

이번 예시에서는 위와 같은 와인에 대한 데이터를 불러와본다.

 

redwine = np.loadtxt(fname = 'winequality-red.csv', delimiter=';', skiprows=1)

△예시용으로 위 파일을 불러올 때 일단 부르기 쉽게 redwine으로 변수명을 지정해주었다.

<fname> 파일이름을 넣어주고 <delimeter>그 파일의 구분자는 ;이었다.

그리고<skiprows> 첫번째줄은 와인 기준에 대한 나열이라 필요가 없다.

오히려 있으면 숫자가 아니라 파일을 불러올 수 없기 때문이다.

이번에 사용할 예시 배열

arr = np.array([[1,2,3],
                [4,5,6],
                [7,8,9]])

 

세 가지 방법으로 위에 배열에서 필요한 요소만 잘라내보자.


1. ndarray를 슬라이싱 하는 첫번째 방법은 가로 세로 줄을 그려 영역을 crop하는 느낌이라고 생각하면 된다.

    [n:c , n1:c1] n:c만큼 가로로 먼저 영역 긋고 n1:c1만큼 또 세로로 영역을 긋는 것이다.

arr_1 = arr[:2,1:3]            # [:2]= 위에서 아래로 0에서 2이전 까지 이동, [1:3] = 좌에서 우로 1에서 3 이전까지 이동 해서 슬라이싱
print(arr_1)

출력>
[[2 3]
 [5 6]]

 

2. 내가 원하는 요소를 바로 가져오는 방법 : 배열이름[N, N1] 여기사 N은 배열, N1은 인덱스 넘버

arr = np.array([[1,2,3],
               [4,5,6],
               [7,8,9]])


arr [0,2]              # 배열0번의 2번째 데이터 가져와라

출력>
3

 

 

3. 조건을 달아서 조건에 맞는 데이터/안맞는 데이터로 나눈 후 참인 것만 나오게 하는 방법

arr = np.array([[1,2,3],[4,5,6]])
idx = arr > 3                   # arr에서 3이상인것    조건식을 달면 조건에 따른 값 따로 나타난다
print(idx)
[[False False False]                    #위의 print의 결과
 [ True  True  True]]              
arr[idx]                                    # 이 조건을 배열 옆에 각진괄호 안에 써준다!


출력>
array([4, 5, 6])                       # 조건식에 참인 데이터만 나온다

np 배열은 같은 차원(위치) 데이터끼리 연산이 된다. 아래 예시로 여러 방식으로 배열간의 연산을 해보자.


첫 번째 방법: array끼리 연산자로 계산식 써주기

 

(예시1)

arr1 = np.array([[1,2],[3,4]])
arr2 = np.array([[5,6],[7,8]])
print(arr1 + arr2)                       
print(arr1 - arr2)
print(arr1 * arr2)

출력>
[[ 6  8]
 [10 12]]
[[-4 -4]
 [-4 -4]]
[[ 5 12]
 [21 32]]

 

 

두 번째 방법: 명령어로 연산식 써주기

 

(예시2)

print(np.add(arr1,arr2))                     
print(np.multiply(arr1,arr2))

출력>
[[ 6  8]
 [10 12]]
[[ 5 12]
 [21 32]]

+ Recent posts