2020/08/25 - [통계] - [개념] Python PANDAS에 대해 이해해보자 1 (데이터프레임 생성, 행과 열 조회(.loc, .iloc), 새로운 칼럼 추가, 칼럼
데이터 프레임에 대한 정리는 위 링크를 통해 확인
Pandas
<기능 요약 정리>
- Data frame 자료형 만들기
- Series 자료형 만들기
- 기술통계
- NA값 처리
- 엑셀 파일 불러오기 (파일 형식: xlsx, csv, Pandas_dataframe(pickle), json; txt도 가능)
오늘은 Pandas의 자료형중 Series형을 알아보자.
2. Series 자료형 만들기
Pandas 패키지를 사용하면 series 자료형을 만들 수 있다.
series 자료형은 어떠한 자료형도 포함할 수 있는 1차원 배열이다. (즉 칼럼이 하나)
인덱스와 인덱스에 해당하는 값을 1열로 구성한 자료인데
자세한 특징은 kongdols-room.tistory.com/103
이 블로그를 참고해서 정리하도록 하겠다.
2-1. Series 자료형 생성 (pd.Series(data, index = [~]))
list, tuple로 Series 생성하기
Series 자료형 생성은 리스트나 튜플 형태의 데이터를 Series화 시켜 생성할 수 있다.
#list와 tuple 데이터로 Series형 생성 date = [10, 12, 15, 21, 30] name = ('a', 'b', 'c', 'd', 'e') date = pd.Series(date) name = pd.Series(name) [name, date]
dictonary로 Series형 생성하기
dictionary를 만들어보자.
#딕셔너리로 Series형 생성 dic = {'a':'1', 'c':'2', 'd':'3'} dic = pd.Series(dic) dic
이때, 딕셔너리에 입력한 Key가 인덱스, 각 키에 대응되는 value는 그대로 value가 된다.
만약 pd.Series 함수를 쓸 때 index를 지정해주었다면, 지정한 인덱스 순서대로 재배열된다.
#딕셔너리 Series화 할 때, index 설정해주기 dic = {'a':'3', 'c':'1', 'b':'2'} dic = pd.Series(dic, index = ['a','b','c', 'c', 'd']) dic
스칼라형으로 Series 생성하기
pd.Series(스칼라, index = [~])는 모든 인덱스에 스칼라값을 출력한 Series를 생성한다.
#스칼라값으로 Series 생성 s = pd.Series(10, index = ['1','3','2'])
2-2. Series 데이터 조회
Series형 데이터를 조회하는 방식은 인덱스를 활용한다.
1열짜리 데이터이기 때문에 특별히 칼럼을 지정해줄 필요가 없어 데이터프레임보다 조회가 간단하다.
#Series형 데이터의 조회 (행 하나만 조회) date[4] #Series형 데이터의 조회 (범위 행 조회) date[0:3] #Series형 데이터의 조회 (특정 여러 행 조회) name[[1,3]]
Series형의 값들만 추출하기 (인덱스 제거)
Series 데이터에서 인덱스를 제거하고 값만 추출하려면 ## Series명.values ## 를 입력하면 된다.
#Series형 데이터의 값만 떼어내기 print(date.values) type(date.values)
Series형의 값들 list화 (ndarray -> list)
Series에서 추출한 값 (ndarray형)를 list형으로 변환해보자.
## list() ##함수를 활용해 변환이 가능하다.
#Series형에서 추출한 값 list화 (ndarray -> list) datev = list(date.values) print(datev) print(type(datev))
Series형에서 인덱스 범위를 조회할 수도 있다.
Series형에서 index 범위 조회 (.index)
#Series형에서 index 범위 조회 date.index
인덱스의 데이터 타입을 조회하면?
#Series형에서 index의 타입은? type(date.index)
Series형에서 특정 조건 조회
데이터프레임에서 조회할 때와 유사하나, 특별한 함수명은 없이 칼럼 조회를 활용한다.
#Sereis형에서 특정 조건 조회 #데이터 프레임과 비슷하다. 유의할 점은 Series형은 데이터명과 칼럼명이 동일하다는 것 date[date>12]
#Sereis형에서 특정 조건 조회 #데이터 프레임과 비슷하다. 유의할 점은 Series형은 데이터명과 칼럼명이 동일하다는 것 name[name=='c']
Series형에서 특정 조건 조회할 때 논리연산 적용하기 (AND, OR)
이것은 Series형 뿐만 아니라 데이터 프레임에서도 적용가능하다.
근데 사실 Series형에서 굳이 AND나 OR를 적용할 일은 많지 않은 것 같다.
먼저 AND 적용하기
#Series형에서 논리연산 사용해 특정 조건 조회 #And는 두 조건을 각각 대괄호를 써서 따로 입력 date[date>10][date<=21]
보다시피 And 조건으로 만들 수 있는 것은 이런 부등호식 정도..
OR 적용하기
Or을 적용하려면 대괄호 안에 소괄호로 각 조건을 묶고 조건 사이에 | (Shift+\)입력
#Series형에서 논리연산 사용해 특정 조건 조회 #Or은 대괄호 안에 소괄호로 두 조건을 각각 따로 묶고, 두 조건 사이에 | 넣기 date[(date<11)|(date>21)]
2-3. Series형 사칙연산 (같은 index끼리 자동 적용)
Series형은 사칙연산이 가능하다.
방법은 매우 간단하다.
#Series형 사칙연산 date+date date-date date*date date/date
그리고 이때 인덱스를 따로 지정해주면 같은 인덱스끼리만 계산된다.
Seires형 사칙연산 (index 지정)
#Series형 사칙연산(index 지정) day = pd.Series([9,10,11,12,13], index = ['월','화','수','목','금']) day2 = pd.Series(10, index = ['금','토','일'])
day+day2
각 Series형에 동일한 index가 있는 값들만 결과값이 출력된다.
그러므로 만약 Series형에서 인덱스를 지정하여 사칙연산을 해주려면, 모든 Series형에 포함된 index만 연산이 가능하다는 점을 알아두어야 한다.
여기까지 Pandas에서 다룰 수 있는 자료형 Series형을 알아보았다.
Series형은 어떻게 보면 Data Frame형의 하위호환이라서 거의 써보지 않았지만, 개념을 좀 더 확실히 이해할 수 있었다.
'언어 > Python' 카테고리의 다른 글
[개념] Python Pandas에 대해 이해해보자 4 (엑셀 파일 불러오기) (0) | 2020.08.27 |
---|---|
[개념] Python Pandas에 대해 이해해보자 3 (기술통계, 결측값 처리, 각종 파일 형식 불러오기와 내보내기) (0) | 2020.08.27 |
[개념] Python Pandas에 대해 이해해보자 1 (데이터프레임 생성, 행과 열 조회(.loc, .iloc), 새로운 칼럼 추가, 칼럼 (0) | 2020.08.25 |
[기본] Python 조건문(비교 연산자, 논리 연산자, 기본조건문) (0) | 2020.08.22 |
[기초] Python 강제 형 변환(str, int, float) (0) | 2020.08.22 |