오늘은 판다스(Pandas)에서 데이터 프레임 안에 정보 들을 파악하고, 그 정보 들의 위치에 따른 값을 확인하는 방법을 알아보도록 하겠습니다.
1. pandas를 import 하고 데이터 프레임 불러오기
실행 코드 공유
import pandas as pd
#데이터 불러오기(인덱스 기본 번호 지정 x)
challenge_df = pd.read_csv('무한도전.csv',encoding = 'cp949', index_col = 0)
challenge_df
이렇게 두개의 코드를 불러와줬고, 판다스 데이터프레임으로 csv 파일을 불러온 뒤 challenge_df 변수에 그 값을 저장해주었습니다. 이 csv 파일의 경우 그냥 불러올 경우 에러코드가 나올 수 있으므로 encoding을 'cp949'로 지정해주어 데이터 프레임을 불러올 수 있었습니다. 또한, index_col = 0 으로 지정하게 되면 애초에 엑셀 값에서 비어있는 공백들 및 인덱스 번호를 제외하고 깔끔하게 데이터 프레임을 출력할 수 있어서 코딩 해준 후 출력해주었습니다.
2. 판다스(pandas)에서 특정 부분 데이터 값을
알아내려면 ??? [인덱싱(indexing)]
만약 저 데이터 프레임에서 특정 값을 알고 싶다면 어떻게 해야할까요?
예를 들어 !!!!
'정형돈'의 sns 유무를 알아보고 싶다면?
'유재석'의 키를 알아보고 싶다면 ?
지금은 우리가 육안으로 보기에 저 부분은 분명하게 보입니다 ! 하지만 데이터 프레임 행이 9999개의 행과 열로 이루어져있다면? 그러면 바로 찾아보기 힘들겁니다. 그럴 경우 이제 사용하는 것이 인덱싱(indexing) 입니다. 예제로 알아보시죠.
실행 코드 공유
challenge_df.loc['정형돈','SNS유무']
challenge_df.loc['유재석','키']
우리의 판다스 데이터 프레임 이름인 challenge_df. 를 적고, location의 준말인 loc 를 그 자리에 적어주면 됩니다. 이렇게 인덱싱을 이용하면 우리가 원하는 값의 정보들을 바로 바로 찾아볼 수 있습니다.
3. 판다스(pandas)에서 데이터 행(인덱스) 또는 열(컬럼)
값 전체를 받으려면 ??
이번엔 위에서 특정 위치 값을 받아내는 것과 다르게, 열(컬럼) 또는 행(인덱스) 값 모두를 받아내는 방법은 없을까요?
예를 들어,
무한도전 모든 멤버들의 키를 알고싶어요 !
무한도전 모든 멤버들의 SNS 유무를 알고싶어요 !
라는 방식으로 전체 열 또는 행을 알고 싶다면 어떻게 해야할까요?
실행 코드 공유
#모든 무한도전 멤버들(인덱스)의 'SNS 유무'(컬럼) 확인
challenge_df.loc[:,'SNS유무'] # : 값은 전체 값을 불러옵니다
#모든 무한도전 멤버들(인덱스)의 '키'(컬럼) 확인
challenge_df.loc[:,'키'] # : 값은 전체 값을 불러옵니다
이렇게 하면 키 열(칼럼)에 해당하는 값(인덱스)을 다 불러올 수 있고, 이렇게 인덱싱 해온 값들 말고도 특정 인물(인덱스) 값을 기준으로도 받아올 수 있습니다. 당연히 우리가 해준 반대로 해주면 [ '이름' ,:] 해준다면 그 인물의 정보를 확인 할 수 있습니다.
'정준하'의 정보를 다 확인해보고 싶어요
라고 하신다면,
작성 코드 공유
#특정 '정준하' 행(인덱스)에 대한 전체 열(칼럼) 값 받아오기
challenge_df.loc['정준하',:]
이렇게 반대로 지정하시면 됩니다.
4. Series는 뭔가요???
위에서 받아왔던 '정준하' 의 정보를 Jung_df 라는 변수에 지정해주고, 그것의 type 을 분석해봅시다.
#특정 행(인덱스)에 대한 전체 열(칼럼) 값 받아오기
Jung_df = challenge_df.loc['정준하',:]
#시리즈(Series) type 분석
print(type(Jung_df))
그러면 시리즈(Series) 라고 나오는데 이건 어떻게 이해해야할까요? 시리즈(Series) 는 판다스의 구성요소인 1차원 모양을 한 자료형입니다. 그러니 판다스는 여러 시리즈(Series)가 모여서 구성되는 것이라고 이해해도 무방하죠, 이렇게 시리즈(Series)에 대한 이해까지 해보았습니다.
저의 아주 작은 티끌 코딩 글이
블로그 방문자 님의 코딩에 도움이 됐으면 좋겠습니다.