DataFrame이란?
시리즈가 1차원 벡터 데이터에 행방향 인덱스(row index)를 붙인 것이라면 데이터프레임 클래스는 2차원 행렬 데이터에 인덱스를 붙인 것과 비슷하다.
2차원이므로 각각의 행 데이터의 이름이 되는 행방향 인덱스(row index) 뿐 아니라 각각의 열 데이터의 이름이 되는 열방향 인덱스(column index)도 붙일 수 있다.
앞에서 데이터프레임은 2차원 배열 데이터를 기반으로 한다고 했지만 사실은 데이터 프레임은 사실상 공통 인덱스를 가지는 열 시리즈(Column Series)를 딕셔너리로 묶어놓은 것이다.
2차원 배열 데이터는 모든 원소가 같은 자료형을 가져야 하지만 데이터프레임은 각 열(column)마다 자료형이 다를 수 있기 때문이다. 아래 예제에서도 지역과 인구와 증가율은 각각 문자열, 정수, 부동소수점 실수이다.
즉, Column은 Series를 뽑아내는 key로 사용되고 그렇게 뽑아낸 값은 index가 붙어져 있는 Series로 만들어져 반환된다.
결국은 DataFrame은 Column이 key값이고 index가 붙어있는 Series들이 value인 딕셔너리 형태인 것이다!
DataFrame의 데이터 접근하기
(1) Column을 이용하여 접근하기
Column을 이용하여 데이터를 가져오면 해당 열을 Series의 형태로 반환한다.
또한 아래의 코드처럼 여러 개의 열을 동시에 가져올 수도 있다. 하지만 이 때에는 한 개의 Series가 아니므로 DataFrame이 반환된다.
(2) Row를 이용하여 접근하기
(3) Column과 Row 모두 이용하여 접근하기
Column 새로 생성하기
Column 제거하기
drop() 함수에서 axis라는 파라미터는 방향을 의미한다.
axis의 default 값은 0이다. 이는 행방향을 의미한다.
또한 axis=1은 열방향을 axis=2는 채널 방향을 의미한다.
위의 코드에서는 'new'열을 drop()함수를 통해 삭제했음에도 열이 사라지지 않았음을 알 수 있다.
원래 데이터에서 완전히 삭제하고 싶다면 아래의 코드처럼 inplace 파라미터를 True로 설정해주어야 한다.
조건문 이용하기
위의 코드처럼 DataFrame에 조건식을 사용하면 각 조건에 대한 Boolean 값이 반환된다.
만약 Boolean 값이 True일 경우 원래의 데이터가 반환되게 만드려면 아래의 코드처럼 작성하면 된다.
또한, 다음과 같이 조건에 맞는 데이터만 가져올수도 있다!
마지막으로 아래와 같이 조건식에 관해 and와 or연산을 하고 싶다면 DataFrame에서는 and, or 키워드 대신에 &, |를 사용해야 한다.
set_index()와 reset_index()를 이용하여 index 조작하기
<참고>
https://datascienceschool.net/view-notebook/c5ccddd6716042ee8be3e5436081778b/
Data Science School
Data Science School is an open space!
datascienceschool.net
https://datascienceschool.net/view-notebook/704731b41f794b8ea00768f5b0904512/
Data Science School
Data Science School is an open space!
datascienceschool.net
https://datascienceschool.net/view-notebook/aa62265f02fc429aa636ef343c3b1fda/
Data Science School
Data Science School is an open space!
datascienceschool.net
https://datascienceschool.net/view-notebook/a49bde24674a46699639c1fa9bb7e213/
Data Science School
Data Science School is an open space!
datascienceschool.net
https://datascienceschool.net/view-notebook/7002e92653434bc88c8c026c3449d27b/
Data Science School
Data Science School is an open space!
datascienceschool.net
<소스코드>
Se-Hun/MachineLearningStudy
MachineLearning에 대한 공부와 프로젝트들 정리. Contribute to Se-Hun/MachineLearningStudy development by creating an account on GitHub.
github.com
'Python Library > Pandas' 카테고리의 다른 글
6. DataFrame Buil-in 함수 및 속성들 (0) | 2019.08.12 |
---|---|
5. DataFrame 병합하기 (0) | 2019.08.12 |
4. Groupby (0) | 2019.08.12 |
3. Pandas를 이용하여 NaN값 전처리하기 (0) | 2019.08.12 |
1. Series (0) | 2019.08.12 |