- [Pandas] library DataFrame .loc condition(조건문)2024년 01월 05일 00시 58분 07초에 업로드 된 글입니다.작성자: 묭동이
이번 글에서는 pandas 라이브러리의 DataFrame 객체의 .loc attrribute의 조건문을 처리하는 방법을 알아보겠습니다.
필요한 라이브러리 불러오기
- seaborn 라이브러리 : dataset을 불러옵니다
- pandas 라이브러리 : data를 Series(1차원 데이터), 혹은 DataFrame(2차원 데이터 이상)으로 핸들링합니다
저는 타이타닉 데이터를 불러왔는데요, 다양한 데이터를 불러올 수 있는데 불러오는 방법은 seaborn 라이브러리를 코드 상단에 import 하여 불러온 후 load_dataset('불러오고 싶은 데이터셋') 메소드를 사용하면 됩니다 :)
타이타닉 데이터셋의 경우 891개의 row(행)와 15개의 column(열)으로 구성된 것을 알 수 있습니다
.shape을 사용하면 데이터의 dimension(차원)을 알 수 있습니다 2차원 데이터이며 891개의 행과 15개의 열로 구성되어있는 것을 확인할 수 있습니다
.head() 메소드를 사용하면 가장 먼저 나오는 5개의 행을 확인할 수 있습니다
만약 10개의 행을 확인하고 싶은경우 .head(10) 메소드를 사용하면 됩니다
.head() 메소드의 argument로 불러오고 싶은 행의 개수를 넣으면 됩니다
.tail() 메소드는 .head() 메소드와 유사하며 메소드의 이름에서 유추할 수 있듯이 마지막 5개의 행을 가져옵니다.
만약 마지막 10개의 행을 가져오고 싶은 경우 .tail(10) 메소드를 사용하면 됩니다
저는 ".head(), .tail() 메소드는 왜 5개 row만 가져오지?" 생각했는데요, 이는 default로 가져오는 개수가 5개로 지정되어있기 때문입니다.
가져오고 싶은 개수는 위에서 언급했듯이 argument로 넣어주시면 됩니다 !
생존여부를 나타내는 alive 칼럼을 var 변수에 넣은 후, '행' 조건을 'alive'=='yes' 즉, 생존자의 데이터만 가져오도록 하였습니다.
, : 의 의미는 모든 열을 가져온다는 의미입니다
"나는 모든 열을 가져오긴 싫고 생존여부, 성별, 나이 열만 가져오고 싶은데"
이런 경우에는 리스트 형태(['alive', 'sex', 'age'])로 열 부분에 작성하면 됩니다
나이가 평균이상인 데이터만 가져오고 싶은 경우
행 조건에 average_age 보다 크거나 같다는 조건을 적어주시면 됩니다. titanic을 생략하게 되면 에러가 발생하므로 사용시 주의해야 합니다
행 조건이 두 개인 데이터의 열을 지정하여 데이터 가져오기
Ex1) 성별이 '남자'이고 나이가 평균이상인 데이터의 'who', 'age', 'sex' 열만 가져오기
이 예시의 경우 조건이 두 개가 필요합니다.
조건을 두 개 이상 작성할 때는 titanic.loc[(조건1) (& or |) (조건2), [열 범위]] 이와 같은 방식으로 작성해주시면 됩니다
& : (and 조건) | : (or 조건)
행 조건이 세 개인 데이터의 열을 지정하여 데이터 가져오기
조건이 세 개인 경우에도 두 개인 경우와 동일한 방식으로 조건을 작성하면 됩니다
Ex2) 'embark_town'이 'Southampton'이고 'fare'가 '평균 미만'이며 'embarked'가 'S' 또는 'Q'인 데이터의 'embark_town', 'fare', 'survived', 'embarked', 'who' 열만 가져오기
평균을 계산하는 방법은 .mean() 메소드를 사용하면 쉽게 구할 수 있습니다
Ex2)의 코드와 출력 결과는 아래와 같습니다
순차적으로 조건에 맞게 논리식을 작성하면 됩니다
틀린 부분 댓글로 작성해주시면 감사하겠습니다 😊
'Data Analystics > pandas' 카테고리의 다른 글
[Pandas] concat() 메소드를 사용하여 데이터 통합하기 (2) 2024.01.08 [Pandas] manipulate textual data(문자형 데이터 다루기) (2) 2024.01.06 [Pandas] File Handling (2) 2024.01.05 [Python] pandas library DataFrame .loc vs .iloc (4) 2024.01.04 [Pandas] 라이브러리 (0) 2023.12.30 다음글이 없습니다.이전글이 없습니다.댓글