반응형

파이썬 데이터 분석 / numpy arrary 생성하기

 

Numpy arrary 생성하는 방법

아래와 같은 방법으로 만들 수 있습니다. 

1) np.array(data1) # data1의 자료형은 list 또는 tuple이 올 수 있습니다. 
2) np.arange(20) # array + range가 합쳐진 것으로 보시면 됩니다. 
3) np.linspace(-5, 5, 10) # start ~ end 까지 간격을 동일하게 만듭니다. 

linspace(start, end, num) # num의 갯수만큼 데이터를 만들어 냅니다. 

4) np.zeros([3,2]) # default 값이 0인 배열을 생성합니다.
5) np.ones([3,2]) # default 값이 1인 배열을 생성합니다.
6) np.empty([3,2]) # default 값이 없는 배열을 생성하는데, 이를 사용하면 반드시 초기화를 해주어야 합니다. 

 

- rank : 배열의 차원
- shape : 각 차원의 크기를 tuple로 표시한 것
- 배열의 타입은 ndaaray 입니다. 

 

예제

 

import numpy as np

data1 = [1,2,3,4,5]
print(type(data1))
print(data1)

arr1 = np.array(data1)
print(type(arr1))
print(arr1)

arr2 = np.arange(20)
print(arr2)

arr3 = np.linspace(-5, 5, 10)
print(arr3)

arr4 = np.zeros([3,2])
print(arr4)

arr5 = np.ones([3,2])
print(arr5)

arr6 = np.empty([3,2])
print(arr6)

 

반응형
반응형

파이썬 데이터 분석 / set 집합 함수 - 합집합, 차집합, 교집합, 대칭차

 

Set 함수란

집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형입니다. 

 

대칭차란

둘 중 한 집합에는 속하지만 둘 모두에는 속하지는 않는 원소들의 집합입니다. 

 

합집합, 차집합, 교집합, 대칭차

합집합 set.union
차집합 set.difference
교집합 set.intersection
대칭차 set.symmetric_difference

예제

sdata1 = {1,2,3,4}
sdata2 = {3,4,5,6}

print(set.union(sdata1, sdata2))
print(set.intersection(sdata1, sdata2))
print(set.difference(sdata1, sdata2))
print(set.symmetric_difference(sdata1, sdata2))

반응형
반응형

파이썬 데이터 분석 / pandas DataFrame 생성하기

 

1) Numpy 배열 또는 딕셔너리를 이용한 data frame 생성

import numpy as np
import pandas as pd

# numpy 배열로 data frame 생성
my_darray = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,11,12]])
test1 = pd.DataFrame(my_darray)
print(test1)
print(test1.shape)
print(len(test1))

# 딕셔너리(list와 numpy 배열 포함)로 data frame 생성
my_darray2 = {
    'col1': [1,2,3],
    'col2': np.array([4,5,6]),
    'col3' : [7,8,9],
    'col4' : np.array([10,11,12])}

test2 = pd.DataFrame(my_darray2)
print(test2)
print(test2.shape)
print(len(test2))

2) index, columns 이용한 data frame 생성

import numpy as np
import pandas as pd

my_df = pd.DataFrame(data=[4,5,6,7], index=range(0,4), columns=['A'])
my_df['B'] = [1,2,3,4]
test3 = pd.DataFrame(my_df)
print(test3)
print(test3.shape)
print(len(test3))

3) series를 이용한 data frame 생성

import numpy as np
import pandas as pd

my_series = pd.Series({"One":"c++", "Two":"java", "Three":"python", "Four":"visual basic"})
test4 = pd.DataFrame(my_series)
print(test4)
print(test4.shape)
print(len(test4))

반응형
반응형

파이썬 데이터 분석 / pandas DataFrame 열 추가 및 삭제

DataFrame 데이터 가져오기

야후에서 제공하는 API를 사용해 데이터를 가져와 보겠습니다. 

아래는 삼성전자의 주식 정보를 가져오는 구문입니다. 

기간은 2020/07/01 이후의 데이터를 가져옵니다. 

 

아래의 samsung 변수는 dataframe 형식으로 반환됩니다. 

from pandas_datareader import data as pdr

samsung = pdr.get_data_yahoo('005930.KS', start='2020-07-01')

DataFrame 열 확인

데이터를 출력하는 것은 간단합니다. 

DataFrame의 열을 확인하기 위해서는 columns 속성을 이용합니다. 

아래를 보면 6개의 열을 가지고 있음을 볼 수 있습니다. 

print(samsung)
print(samsung.columns)

DataFrame 열 삭제

열을 삭제해 보겠습니다. 

del 명령어를 이용하여 DataFrame의 속성을 지정해주면 삭제됩니다. 

del samsung["High"]
print(samsung.columns)

DataFrame 열 추가

아래 구문은 NewOne 이라는 열을 추가하는데, 값은 모두 0으로 지정하여 값을 추가하였습니다. 

samsung['NewOne'] = 0
print(samsung.columns)
print(samsung)

 

이번에는 새로운 열을 추가할 때, 각 행의 값을 다른 열의 값을 이용하여 넣어보도록 하겠습니다. 

'Close'는 주가의 그 날의 종가 데이터입니다. 

새로운 열은 그 전날의 종가 데이터의 변동 차이에 대한 값을 넣도록 하였습니다. 

shift(1)을 하면 전체 데이터가 1행씩 뒤로 이동되는데, samsum['Close'].shift(1)을 하면 이전 날의 종가 데이터가 됩니다.

 

하여, 새로운 열인 'DailyChange'를 추가하여, 종가 변동차이 값을 지정하였습니다. 

samsung['DailyChange'] = samsung['Close']- samsung['Close'].shift(1)

print(samsung.columns)
print(samsung)
print(samsung['DailyChange'])

전체 코드

from pandas_datareader import data as pdr

samsung = pdr.get_data_yahoo('005930.KS', start='2020-07-01')

samsung['DailyChange'] = samsung['Close']- samsung['Close'].shift(1)

print(samsung.columns)
print(samsung)
print(samsung['DailyChange'])
반응형

+ Recent posts