Numpy, Pandas 공부 정리

wonsik·2021년 9월 25일
1
post-thumbnail

다른 python 파일을 module로 쓰는법

main 파일에서 다른 파일의 함수나 변수를 가지고 와 사용하고 싶으면 main과 같은 디렉토리의 파일을 import [파일명] 을 통해 가지고 온다.

#main 내에서 cal파일 불러오기
import cal
a=cal.plus(a,b) #cal에 있는 plus함수 사용
cal.value #cal에 있는 value라는 변수 사용

random module 팁

from random import randrange

randrange(a,b) #a부터 b-1까지 중 정수 1개를 random하게 호출

numpy 기초

import numpy as np
np.array(range(0,5)) #[0,1,2,3,4]
a=np.array(range(1,16)) #[1~15]
a.shape=3,5 #[[1~5],[6~10],[11~15]]

numpy indexing & slicing

x=np.array(range(7)) #x=[0,1,2,3,4,5,6]
x[3] #3
x[1:4] #[1,2,3]
x[x<3] #[0,1,2]

pandas 기초

Series 데이터

  • Numpy array가 보강, data와 index로 이루어짐
  • 딕셔너리 이용해서 만듬
  • column이 1개밖에 없다
import pandas as pd
pd.Series([1,2,3,4],index=['a','b','c','d'])
#a 1
#b 2
#c 3
#d 4

dict={
'A':1,
'B':2,
'C':3,
}
pd.Series(dict)
#A 1
#B 2
#C 3

DataFrame

Series가 여러개

import pandas as pd
pop={'korea':1,'japan':2}
gd={'korea':12,'japan':'df'}
pd.DataFrame({'pop':pop,'gd':gd})

기본구조

#1
df=pd.DataFrame({'a':[1,2,3],'b'=[4,5,6]}) #딕셔너리 형식으로 들어오면 key가 column의 이름으로 생성 딕셔너리 형태(:)이므로 중괄호{}로 닫음
#2
df=pd.DataFrame(np.random.rand(5,2),columns=['A','B']) #리스트 vector로 만들고 column name 따로 만듬

예제

a=np.random.rand(5,2) #numpy에 내장된 랜덤함수를 통해 5*2의 차원을 가지는 random list생성
df=pd.DataFrame(a,columns=['A','B']) #열의 이름을 'A', 'B'로 지정
df[(df['A']<1] #df의 A컬럼중 1보다 작은 것들의 dataframe
df.query("A<0.5 and B>0.3") #query를 사용해 조건에 맞는 dataframe 생성

정렬(sort)

df.count(axis=0) #각 컬럼별 데이터 개수(행 숫자)
df.count(axis=1) #각 행별 데이터 개수(열 숫자)
df['A']=df['A'].fillna(0) #'A'컬럼의 None을 0으로 치환
df.groupby('A').sum() #'A'컬럼에서 중복된 값들을 그룹으로 묶고 뒤 함수(여기선 sum())진행
df.groupby('A').aggregate([min,max]) #dataframe을 'A'컬럼으로 groupby시킨 후 그룹별로 나머지 컬럼들의 min과 max를 각각 출력
df.groupby('key').aggregate({'data1':min,'data2':sum}) #dataframe을 'key'컬럼으로 groupby시킨 후 data1컬럼은 각 그룹의 min, data2컬럼은 각 그룹의 sum출력
profile
새로운 기술을 배우는 것을 좋아하는 엔지니어입니다!

0개의 댓글