pandas와 numpy 다루기

2018. 5. 11. 02:33Python-이론/python-인공지능

pandas와 numpy 다루기



머신러닝을 할 때 데이터를 자주 조작하며 사용하게 될 것이다. 데이터를 조작하는데 유용한 pandas와 numpy의 함수에 대해 알아보자

pd.DataFrame(inputData)

DataFrame은 numpy의 ndarray, dict, 일반 배열들을 입력데이터로 받는다.


import pandas as pd 

data = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]
]
r = pd.DataFrame(data)
print(r)

결과

결과와 같이 입력데이터 뿐만 아니라 왼쪽과 윗편에 인덱스까지 붙어서 나온다.





pd.Series(inputData,dtype=)

Series의 입력값은 1차원 배열 딕셔너리를 받는다. 그리고 뒤에는 데이터 타입형을 지정해줘도 되고 안해도 된다.


import pandas as pd 

data= ["Avengers","gurdians of the galaxy","agent of shiled"]
r = pd.Series(data)




원하는 데이터 추출하기


이번에는 데이터의 키값으로 접근하여 원하는 데이터 값을 가져와 보겠다.


import pandas as pd
 data = {
      "weight":[80.0,70.4,65.5,45.9,51.2],
      "height":[170,180,155,143,154],
      "type":["f","n","n","t","t"]
      }
data = pd.DataFrame(data)

#이 키값에 모든 값 출력
print(data["weight"])
print(data[["weight","height"]])

print(data[2:4])
print(data[2:])
#조건을 추가하여 출력하기 
print(data[data.height>=160])



pd.sort_value(data,ascending=)



import pandas as pd
 data = {
      "weight":[80.0,70.4,65.5,45.9,51.2],
      "height":[170,180,155,143,154],
      "type":["f","n","n","t","t"]
      }
data = pd.DataFrame(data)
print(data.sort_value(by="height"))
print(data.sort_value(by="weight",ascending=False))




행과 열을 반전 시켜보기


 data = [
 ["A","B","C"],
 ["D","E","F"],
 ["G","H","I"]
 ]
data = pd.DataFrame(data)
print(data)
print("\n\n\n")
print(data.T)




numpy를 통해 데이터 조작


import numpy as np
#0으로 초기화 된 np배열 만들기
zeros = np.reros(10,dtype = np.float32)
print(zeros)
#0~9까지 
arrange = np.arrange(10,dtype=np.float32)
print(arrange)
#모든 값에 3곱하기
arrange *=3 
#평균
print(arrange.mean())

결과


numpy를 이용한 정규화


지금 까지는 데이터를 키는 200, 몸무게는 100으로 나누어서 정규화 시켰다. 하지만 지금 부터는 numpy를 이용하여 새로운 방법으로 정규화를 시켜보도록 하겠다.


import pandas as pd
import numpy as np
 data = {
      "weight":[80.0,70.4,65.5,45.9,51.2],
      "height":[170,180,155,143,154],
      "type":["f","n","n","t","t"]
      }
v = pd.DataFrame(data)

def norm(v,key):
    c = v[key]
    v_min = c.min()
    v_max = c.max()
    print("key=> ",key,"min",v_min,"max",v_max)
    v[key] = (c-v_min)/(v_max-v_min)

norm(v,'weight')
norm(v,'height')

print(v)