Notice
Recent Posts
Recent Comments
Link
말랑말랑제리스타일
[Pandas]판다스 인덱싱 - 데이터 조회 본문
Pandas의 DataFrame과 Series에서 데이터를조회하는 작업은 거의 모든 분석에서 일어나는 작업으로 가장 먼저 해야될 작업 중 하나입니다.
- Native Accesors (접근자)
- 파이썬의 Native 객체는 데이터를 인덱싱하기 좋습니다. Pandas는 이걸 보다 쉽게 시작할 수 있게 도와줍니다. 지난 글에 이어서 이번에는 또다른 colab의 샘플 데이터를 가져와봅시다.
- test_df = pd.read_csv("/content/sample_data/california_housing_test.csv") test_df
- 파이썬에서 우리는 불러온 DataFrame의 속성 값 즉 컬럼을 이용해서 각 객체를 조회해볼 수 있습니다. 여기서 각 속성에 접근하기 위해 '.' 또는 '[]'를 이용해볼 수 있습니다. 아래의 두가지 방식으로 된 파이썬 소스는 같은 결과를 출력합니다.
test_df.total_rooms test_df['total_rooms']
- 여기서 대괄호를 이용해 DataFrame에서 Series를 조회하는 방식이 다른 점이라고 하면 또다른 대괄호를 이용해 2차원배열처럼 특정 Row의 값을 가져올 수 있습니다.
test_df['total_rooms'][0]
- 파이썬의 Native 객체는 데이터를 인덱싱하기 좋습니다. Pandas는 이걸 보다 쉽게 시작할 수 있게 도와줍니다. 지난 글에 이어서 이번에는 또다른 colab의 샘플 데이터를 가져와봅시다.
- Pandas에서의 Indexing
- Pandas의 인덱싱 연산자와 조회 기능은 유용합니다. 초보자를 위한 loc 및 iloc 기능이 있고 고급 사용자는 index-based selection 기능을 사용해볼 수 있습니다. 번역이 복잡해서 간단히 했는데 실제 실습을 통해 좀 더 자세히 익혀봅시다.
- Index-based selection(인덱스 기반 조회)
- 데이터프레임의 첫번째 row를 가져오는 소스입니다.
test_df.iloc[0]
- loc와 iloc 모두 row가 첫번째, column이 두번째입니다. 네이티브 Python에서와 반대입니다.
이 말은 곧 pandas에서 column으로 조회하는 편이 row로 조회하는 것보다 어렵다는 뜻입니다. iloc으로 column을 가져오려면 다음을 코드를 실행해볼 수 있습니다.
test_df.iloc[:,0]
- 파이썬에서 :을 사용한다는 것은 모든 값을 의미합니다. 여기서 다른 selector를 이용해 우리가 원하는 값을 추려낼 수 있습니다. 예를 들어서 첫번째부터 세번째 row의 첫번째 컬럼을 조회하기 위해서는 아래 코드를 실앻해볼 수 있습니다
test_df.iloc[:3,0]
- 또는 두번째부터 세번째까지의 row를 가져오기 위해서는 이렇게 써볼 수 있습니다.( 첫번째 row의 번지수는 0입니다.)
test_df.iloc[1:3,0]
- 이런 방식으로도 사용이 가능합니다
test_df.iloc[[0, 1, 2], 0]
- 마지막으로 음수를 넣어서 사용하는 방법도 있습니다. 음수를 사용해 끝에서부터 몇개의 row를 출력하는 것이 가능합니다.
test_df.iloc[-5:]
- 데이터프레임의 첫번째 row를 가져오는 소스입니다.
- Labe-based selection
- 두번째 방법은 loc 연산자를 이용한 Label 기반 조회입니다. 이 loc 연산자에서 중요한 것은 컬럼 명과 같은 인덱스 Value입니다. 예를 들어 우리가 가져온 DataFrame에서 첫번째 row의 longitude 컬럼 값을 가져오기 위해서 아래 파이썬 코드를 실행해볼 수 있습니다.
test_df.loc[0,'longitude']
- iloc에서는 컬럼 명을 몰라도 되기 때문에 개념적으로는 간단하지만 loc을 이용하는 편이 인덱스를 이용해 작업할 수 있기 때문에 일반적으로 훨씬 수월합니다.
test_df.loc[:,['longitude','latitude']]
- loc 와 iloc 두가지 방법은 서로 다른 인덱싱 체계를 사용합니다.
iloc는 파이썬의 스탠다드 라이브러리와 같이 0:10으로 조회시 0~9 인덱스를 조회합니다.
반면 loc는 인덱스를 포함하기 때문에 0~10번째 row를 조회하게 됩니다. - 따라서 loc[0:10]로 조회한 경우 11개의 값을, iloc[0:10]로 조회한 경우 10개의 값을 반환합니다.
- 두번째 방법은 loc 연산자를 이용한 Label 기반 조회입니다. 이 loc 연산자에서 중요한 것은 컬럼 명과 같은 인덱스 Value입니다. 예를 들어 우리가 가져온 DataFrame에서 첫번째 row의 longitude 컬럼 값을 가져오기 위해서 아래 파이썬 코드를 실행해볼 수 있습니다.
마지막으로 이 내용은 아래 캐글 사이트의 판다스 과정을 참고한 내용입니다.
https://www.kaggle.com/residentmario/indexing-selecting-assigning
Indexing, Selecting & Assigning
Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources
www.kaggle.com
'프로그래밍 > 파이썬' 카테고리의 다른 글
구글 Colab에 외부 파일 올리기 (0) | 2022.01.18 |
---|---|
[Pandas]판다스 인덱싱 - 인덱스 조정과 조회 조건 (1) | 2022.01.18 |
[Pandas]판다스 데이터 읽기(Colab 사용) (0) | 2022.01.16 |
[Pandas] 판다스 시작하기 데이터 생성해보기 (0) | 2022.01.15 |
캐글 타이타닉 문제 데이터셋의 각 필드 내용 (0) | 2022.01.10 |
Comments