이번 시간에는 지난시간에 기본적인 내용에서 실무에서 주로 사용하는 iloc와 loc를 활용해서 행과 열을 동시에 다루는 법에 대해 알려준다.
2019/11/08 - [Python/[Python] 데이터 전처리] - [파이썬] 판다스 활용 데이터 전처리 - 열 다루기
[파이썬] 판다스 활용 데이터 전처리 - 열 다루기
1. Intro 지금까지 배운 것은 데이터프레임으로 변환하는 내용이었다. 데이터프레임으로 변환한다는 뜻은 결과적으로 연구자 또는 분석 요건에 맞춰서 데이터를 가공할 줄 알아야 한다. Pandas를 배우는 궁극적인..
cozydatascientist.tistory.com
2019/11/12 - [Python/[Python] 데이터 전처리] - [파이썬] 판다스 활용 데이터 전처리 - 행 다루기
[파이썬] 판다스 활용 데이터 전처리 - 행 다루기
1. Intro 지난 시간에는 열(=Column)을 다루는 것을 배웠다. 구체적으로는 열을 선택하는 방법, 추가하는 방법, 삭제하는 방법을 배웠다. 이번에는 행을 다루는 것을 배워보도록 해보자. [지난 글] 2019/11/12 - [..
cozydatascientist.tistory.com
먼저 데이터는 2012년 미국 민주당 경선 데이터를 참고하였다. 데이터 코드는 DataCamp에서 제공 받았다. 데이터를 가져와서 확인해보자.
import pandas as pd
url = 'https://assets.datacamp.com/production/repositories/502/datasets/502f4eedaf44ad1c94b3595c7691746f282e0b0a/pennsylvania2012_turnout.csv'
election = pd.read_csv(url, index_col = "county")
election.head()
loc와 iloc 차이점
loc와 iloc의 차이점은 변수 선택을 숫자로 하는 것인가? 아니면 문자로 지정하는 것인가? 하는 차이점이다. Allegheny county에서 승리한 Obama를 추출하는 코드를 만들 예정이며, loc와 iloc 모두 사용하도록 한다.
먼저 loc를 사용해보자.
election.loc['Allegheny', 'winner']
---
'Obama'
Obama가 정상적으로 추출된 것을 확인할 수 있다. 다음은 iloc를 사용하여 추출해보자. 이때는 행과 열 숫자를 입력해야 한다. 0부터 count가 된다는 것을 잊지 말아야 한다.
election.iloc[1, 4]
---
'Obama'
마찬가지로 Obama가 정상적으로 추출된 것을 확인할 수 있을 것이다.
Column 선택 및 재정렬
분석목적에 따라 Column을 재정렬 해야 할 필요가 있다. Column을 추출하는데 있어서, winner, total 순서대로 재출해보자.
results = election[['winner', 'total']]
results.head(10)
위 데이터를 통해서 보다 깔끔하게 정리된 데이터를 확인할 수 있다.
슬라이싱을 활용한 행과 열 다루기
원소 데이터를 선택할 때, 범위를 지정하여 슬라이싱하는 방법을 여러 가지로 응용할 수 있다.
DataFrame객체.iloc[시작인덱스:끝인덱스:슬라이싱 간격]
슬라이싱의 범위는 '시작 인덱스'를 포함하며, '끝 인덱스'보다 1이 작은 인덱스까지 포함한다. 이 때, "슬라이싱 간격"을 지정하지 않으면 자동적으로 1씩 증가한다.
슬라이싱을 활용한 행 다루기
시작인덱스는 'Blair', 끝인덱스는 'Butler'로 지정하자.
p_counties = election.loc['Perry':'Potter']
print(p_counties)
p_counties_rev = election.loc['Potter':'Perry':-1]
p_counties_rev
슬라이싱을 활용한 열 다루기
이번에는 전체 행을 조회하지만, 열은 처음부터 `Obama`까지만 추출하도록 하는 코드를 실행해보자.
to_Obama = election.loc[:, :'Obama']
print(to_Obama.head())
state total Obama
county
Adams PA 41973 35.482334
Allegheny PA 614671 56.640219
Armstrong PA 28322 30.696985
Beaver PA 80015 46.032619
Bedford PA 21444 22.057452
이번에는 Obama부터 모든 열을 추출하도록 해보자.
Obama_to_end = election.loc[:, 'Obama':]
Obama_to_end.head()
이번에는 Obama부터 Voters까지 열을 조회하도록 해보자.
Obama_to_Voters = election.loc[:, 'Obama':'voters']
print(Obama_to_Voters.head())
Obama Romney winner voters
county
Adams 35.482334 63.112001 Romney 61156
Allegheny 56.640219 42.185820 Obama 924351
Armstrong 30.696985 67.901278 Romney 42147
Beaver 46.032619 52.637630 Romney 115157
Bedford 22.057452 76.986570 Romney 32189
슬라이싱을 통한 행과 열 부분 추출
거의 종착역에 다 왔다. 이번에는 그동안 배운 슬라이싱을 통해 행과 열을 동시에 추출해보자.
subselected_election = election.loc['Potter':'Perry':-1, 'Obama':'voters']
print(subselected_election)
Obama Romney winner voters
county
Potter 26.259542 72.158223 Romney 10913
Pike 43.904334 54.882576 Romney 41840
Philadelphia 85.224251 14.051451 Obama 1099197
Perry 29.769737 68.591009 Romney 27245
'Python > [Python] 데이터 전처리' 카테고리의 다른 글
[파이썬] 판다스와 함수를 활용한 데이터 가공 (0) | 2019.11.21 |
---|---|
[파이썬] 판다스 활용 데이터 전처리 - 행 다루기 (0) | 2019.11.12 |
[파이썬] 판다스 활용 데이터 전처리 - 열 다루기 (0) | 2019.11.08 |
[Python] 판다스 자료 구조 - 데이터프레임 (0) | 2019.11.04 |
[Python] 판다스 자료 구조 - Series (0) | 2019.10.30 |