DataFrame 에서는 원하는 인덱스를 설정하거나 리셋시킬 수 있습니다. 총 설정방법은 2가지와 리셋 1가지를 정리할 예정인데요. 다음과 같습니다. 1. 직접 배정 해주는 방법 2. set_index를 이용해 원래 있는 열을 인덱스로 배정하는 방법 3. reset_index를 이용해 인덱스 리셋 1. 직접 배정해 주는 방법 직접 배정해주려면 data와 갯수가 맞아야 합니다. 다음과 같은 메소드를 씁니다. DataFrame.index= list DataFrame.columns = list list로 설정된 값이 인덱스로 들어가게 됩니다. import numpy as np import pandas as pd ddf = pd.Dataframe(np.arange(0,16).reshape(4,4)) ddf dd..
DataFrame column 추가,삭제,순서변경을 해보겠습니다. import pandas as pd sise = pd.DataFrame({'저가' :[53800, 236000, 110000 ],'고가':[54800,234500,113000]},index=['삼성전자','SK','현대차']) sise 제가 임의로 삼성전자와 SK,현대차의 오늘의 고가,저가를 DataFrame 만들어서 진행하겠습니다. (실제 저가,고가는 아닙니다) 추가 여기서 고가-저가를 한 값들을 DataFrame의 column으로 추가를 해보겠습니다. 간단한 연산만 입력하면 추가할 수 있습니다. sise['range']=sise['고가']-sise['저가'] sise 순서변경 순서변경을 위해선 다시 재정의를 하는 방식으로 합니다. 원하..
DataFrame에 대해 살펴보겠습니다. Series가 1차원 형태의 자료구조라면 DataFrame은 2차원 형태의 자료구조입니다. Series보다 훨씬 다양하게 쓸수 있고 흔히 쓰는 엑셀(Excel)의 스프레트시트와 형태가 비슷하기 때문에 사용법을 조금 익히시면 계산측면에서는 엑셀보다 훨씬 효율적으로 쓸 수 있을겁니다. DataFrame 생성하기 먼저 DataFrame을 생성해서 살펴보겠습니다. from pandas import Series, DataFrame raw_data = {'col0':[1,2,3,4],'col1':[10,20,30,40],'col2':[100,200,300,400]} data = DataFrame(raw_data) print(raw_data) raw_data를 보시면 일반적인..
간단하게 Series의 슬라이싱에 대해서 살펴보겠습니다. 결론적으로 말하면 리스트와 동일합니다. import numpy as np import pandas as pd s = pd.Series(np.arange(1,6)) s s라는 Series에서 슬라이싱을 하겠습니다. 리스트와 동일한 방법으로 슬라이싱을 할 수 있습니다. s[1:3] 인덱스를 기준으로 슬라이싱이 된다는 것을 꼭 기억해주세요! 이번에는 인덱스를 0,1,2,3....으로 하지않고 a,b,c,d,e...로 해서 슬라이싱을 해보겠습니다. s1 = pd.Series(np.arange(1,6),['a','b','c','d','e']) s1 s1['c':'d'] s1 인덱스를 다른 것으로 정해놓아도 고유 인덱스번호는 가지고 있기 때문에 고유 인덱스번..
Series의 drop과 slicing 에 대해서 살펴보겠습니다. Drop 데이터를 받다보면 내가 필요없는 데이터들이 존재합니다. 그럴 때, drop을 이용해 데이터를 없앨 수 있습니다. import numpy as np import pandas as pd s = pd.Sereis(np.arange(1,6),['a','b','c','d','e'] s d를 없애보겠습니다. s.drop('d') 이번엔 d와 e를 없애보겠습니다. d와 e 두개 이상의 데이터를 없앨때는 대괄호 안에 해당 인덱스를 써 넣습니다. s.drop(['d','e']) 하지만 이런다고 s에서 완전히 없어진건 아닙니다. 원본 데이터는 그대로 둔채 drop된 새로운 데이터로 추가로 생성되는 방식이기 때문입니다. s를 다시 부르면 d,e가 사..
Bool을 이용해 Series에서 조건에 해당하는 값을 불러보겠습니다. 먼저 Series를 이용해서 Bool타입을 나타내보겠습니다. import numpy as np import pandas as pd s = pd.Series(np.arange(10),np.arange(10)+1) s 인덱스 구분을 위해 인덱스는 1부터 시작하게 했습니다. 여기서 4보다 큰 값을 Bool로 구분해보겠습니다. s>4 True, False로 구분했습니다. 이걸 Series s에 적용시켜 값이 나오도록 하겠습니다. List와 똑같은 방식으로 하면 됩니다. s[s>4] 대괄호 안에 bool타입을 넣으면 조건에 맞는 값(True)만 나옵니다. 이런 식으로 조건의 맞는 값을 가져올 수 있습니다. 그런데 Series는 index도 저..
Series 로도 연산이 가능합니다. Series는 인덱스를 정할 수 있었기 때문에 그 부분을 생각하고 ndarray에서 하던식으로 하면 연산이 잘 됩니다. 다만 주의할점은 짝이 맞아야 된다는 것인데 짝이 맞지 않으면 NaN으로 출력하게 됩니다. import numpy as np import pandas as pd s1 = pd.Series([1,2,3,4],['a','b','c','d']) s2 = pd.Series([4,2,3,1],['d','b','c','a']) s1+s2 s2의 value 값의 순서를 바꿔도 그에 대응하는 인덱스값을 설정을 해놓으면 Series에서는 인덱스에 대응하는 value 값으로 연산을 하게 됩니다. 가능한 연산을 살펴보겠습니다. 먼저 사칙연산 가능합니다. print(s1-..
Series의 정보를 추출하는 간단한 함수를 알려드릴까 합니다. 다음과 같은 함수를 쓰면 Series의 형태를 파악할 수 있습니다. 물론 더 많이 있지만 주요한 것만 소개하겠습니다. size : Series의 원소 개수를 알려줌 shape : 튜플형태로 shape를 알려줌 unique : 유일한 값만 ndarray로 반환해서 출력 count : NaN을 제외한 원소 개수를 알려줌 mean : NaN을 제외한 평균(numpy와 다르게 계산가능) value_counts : NaN을 제외하고 각 값들의 빈도를 출력 head : 상위 n개 출력 기본값은 5개 tail : 하위 n개 출력 기본값은 5개 import numpy as np import pandas as pd numpy와 pandas를 임포트하고 시작..
Pandas에 대해서 알아볼까 합니다. Pandas는 데이터 다룰 때 많이 쓰고 있고 데이터 사이언스를 하는데 있어서 반드시 잘 다루어야 하는 모듈 중에 하나이고 기본중의 기본 모듈이기도 합니다. 사실 파이썬에서도 리스트,튜플,딕셔너리를 가지고 데이터를 다룰 수 있습니다. 파이썬의 특유의 직관성 때문에 이런 자료구조를 다루는 것만으로도 굉장히 편리합니다. 그런데 좀 더 효율적인 부분을 생각한다면 pandas가 파이썬에 기본으로 내장되어 있는 것보다는 더욱 효율적인 작업을 할 수 있습니다. 그렇다고 Pandas만 주구장창 쓰는 건 아니고 필요에 따라서 리스트도 쓸 때도 있고 pandas에 있는 자료구조도 쓸수 있습니다. 그저 더욱 편리하고 잘 다룰 수 있는 방법을 추구하는 것 뿐입니다. Pandas에는 두..