3월 29일 (금) 오전 8:00

logo

  • home
  • head
  • itnews
  • product
  • mobile
  • game
  • benchmark
  • analysis
  • blog

개봉 2023.11.22. / 등급: 12세 관람가 / 장르: 드라마 / 국가: 대한민국 감독 : 김성수 출연 : 황정민, 정우...
노량: 죽음의 바다 / 개봉 2023.12. / 장르: 액션, 드라마 / 국가: 대한민국 감독 : 김한민 출연 : 김윤석, ...

안녕하세요. SQLER의 코난 김대우입니다. 

이번 강좌에서는, Python 머신러닝 강좌 - 5. Pandas DataFrame에 질의(Query)를 진행토록 하겠습니다.

예제 노트북 파일 : 5. Pandas DataFrame에 질의(Query)

 

SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록

 

코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 강좌 내용을 단계별로 copy&paste해서 실행하시면 됩니다. 또는, Jupyter notebook을 실행하고 단계별로 실행하셔도 됩니다.

예를 들어, 5_pandas_query.ipynb를 생성하고 vscode에서 실행하면, Jupyter notebook이 실행됩니다.(vscode에서 실행도 가능하며, 웹브라우저에서도 실행 가능합니다.)

또는, github 리포지토리를 clone 하신 후, vscode나 Jupyter notebook에서, 위의 노트북 파일을 열면 됩니다. 
 

상세한 환경 구성이 필요 하시다면, 개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 문서를 참조해 WSL, vscode, conda, jupyter notebook 설정을 모두 먼저 완료 하시길 권장해 드립니다.

 

 

Python 머신러닝 강좌 - 5. Pandas DataFrame에 질의(Query)

이번 내용은 DataFrame에 대해 query하는 강좌입니다. DataFrame에서 필요한 컬럼들을 가져올 경우 사용되는 iloc와 loc에 대해서 진행합니다. SQL에 익숙하신 분들이라면, SELECT 절의 컬럼 선택을 떠올리면 이해하기 쉬우실거에요.

 

pandas DataFrame 쿼리

pandas DataFrame은 2차원 테이블 형식의 데이터를 저장하기위한 구조입니다.

 

일반적인 속성(property)

  • loc column 이름을 지정하여 특정 column과 row를 반환합니다.
  • iloc coulmn 인덱스 위치를 지정하여 특정 row와 column을 반환합니다.

 

DataFrame에서 데이터의 일부를 리턴하는 것을 데이터 슬라이싱(slicing) 또는 다이싱(dicing)이라고 합니다.

먼저, 예제로 사용할 데이터를 생성하고 조회해 볼게요.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pandas as pd
 
airports = pd.DataFrame([
                        ['Seatte-Tacoma', 'Seattle', 'USA'],
                        ['Dulles', 'Washington', 'USA'],
                        ['London Heathrow', 'London', 'United Kingdom'],
                        ['Schiphol', 'Amsterdam', 'Netherlands'],
                        ['Changi', 'Singapore', 'Singapore'],
                        ['Pearson', 'Toronto', 'Canada'],
                        ['Narita', 'Tokyo', 'Japan']
                        ],
                        columns = ['Name', 'City', 'Country']
                        )
airports

결과는 이전 강좌들에서 보신 것과 같은 위의 2차원 배열 형태로 DataFrame 결과가 출력됩니다.

 

하나의 컬럼을 리턴

리턴 할 column 이름을 지정합니다.

  • DataFrameName['columnName']
1
2
3
airports['City']

=== 결과 === 

0       Seattle
1    Washington
2        London
3     Amsterdam
4     Singapore
5       Toronto
6         Tokyo
Name: City, dtype: object

SQL 쿼리로 표현하면 SELECT columnName FROM DataFrame 정도가 되겠네요.

 

여러 column들을 리턴

반환하려는 열 리스트를 코드에 추가합니다.

  • DataFrameName[['FirstColumnName', 'SecondColumnName', ...]]
1
airports[['Name', 'Country']]

=== 결과 ===

 NameCountry
0Seatte-TacomaUSA
1DullesUSA
2London HeathrowUnited Kingdom
3SchipholNetherlands
4ChangiSingapore
5PearsonCanada
6NaritaJapan

네, 두개의 컬럼을 DataFrame에서 가져오는 처리입니다. 여러개의 컬럼을 계속 컬럼명을 나열하면 가능하겠죠.

 

iloc를 사용하여 반환 할 row와 column 설정

iloc[rowscolumns]를 사용하면, row 및 column index 위치의 row 또는, column 그룹을 가져올 수 있습니다.

리턴 할 특정 row와 column을 지정합니다.

  • 첫 번째 row는 0 입니다.
  • 첫 번째 column은 0 입니다.
1
2
3
4
# 첫 row와 첫 column의 값을 리턴
airports.iloc[0,0]

=== 결과 ===

'Seatte-Tacoma'

 

i의 의미는 index를 의미하고, list등의 여러 Python 데이터형에서 보신 것처럼, 서수형으로 position의 정보를 가져옵니다.

 

1
2
# 세번째 row와 세번째 column을 리턴
airports.iloc[2,2]

=== 결과 ===

'United Kingdom'

 

":" 을 지정해서 모든 row들과 column들을 리턴 가능합니다.

1
airports.iloc[:,:]

=== 결과 ===

 NameCityCountry
0Seatte-TacomaSeattleUSA
1DullesWashingtonUSA
2London HeathrowLondonUnited Kingdom
3SchipholAmsterdamNetherlands
4ChangiSingaporeSingapore
5PearsonTorontoCanada
6NaritaTokyoJapan

 

 

row 범위 또는 column range를 조회할 수 있습니다.

  • [x:y]는 x부터 y까지의 row 또는 column을 리턴합니다.
1
2
# 첫 2 row와 모든 column을 리턴
airports.iloc[0:2,:]

=== 결과 ===

 NameCityCountry
0Seatte-TacomaSeattleUSA
1DullesWashingtonUSA

로우는 0부터 2까지 즉, 0번과 1번을 가져오고, 컬럼은 ":" 이기 때문에 전체를 가져옵니다.

 

1
2
# 모든 row와 첫 두개의 column을 리턴
airports.iloc[:,0:2]

=== 결과 ===

 NameCity
0Seatte-TacomaSeattle
1DullesWashington
2London HeathrowLondon
3SchipholAmsterdam
4ChangiSingapore
5PearsonToronto
6NaritaTokyo

 

 

row 리스트 또는 column 리스트를 조회할 수 있습니다.

  • [x,y,z]는 row 또는 column x, y 및 z를 반환합니다.
1
airports.iloc[:,[0,2]]

=== 결과 ===

 NameCountry
0Seatte-TacomaUSA
1DullesUSA
2London HeathrowUnited Kingdom
3SchipholNetherlands
4ChangiSingapore
5PearsonCanada
6NaritaJapan

 

loc를 사용하여 이름으로 column을 조회

column의 index 위치 대신 column 이름을 조회하려면 iloc 대신 loc 사용

1
airports.loc[:,['Name', 'Country']]

=== 결과 ===

 NameCountry
0Seatte-TacomaUSA
1DullesUSA
2London HeathrowUnited Kingdom
3SchipholNetherlands
4ChangiSingapore
5PearsonCanada
6NaritaJapan

 

수고하셨습니다.

 

참고자료

개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝

c9-python-getting-started/even-more-python-for-beginners-data-tools/05 - Query a pandas Dataframe at master · CloudBreadPaPa/c9-python-getting-started (github.com)


출처 - https://www.sqler.com/board_MachineLearning_AI_tip_lecture/1096301






  1. 코로나19 정복의 서막? 새로운 백신의 개발

    기나긴 침체와 절망이 빛이 들고 있는 걸까. 최근 미국의 제약회사 화이자가 RNA 코로나19 백신 ‘BNT162b’이 임상 3상 중간결과에서 95% 효능이 있다고 밝혔다. 뒤를 이어 미국의 제약회사인 모더나도 mRNA...
    Date2021.12.05
    Read More
  2. 진료정보침해대응센터, 의료기관 대상 랜섬웨어 대응 보안가이드 배포

    보건복지부와 한국사회보장정보원이 운영, 국내 의료분야의 사이버 보안을 총괄하는 "진료정보침해대응센터"에서 민간 의료기관의 사이버 공격 대응 능력 강화를 위해 2021년 3분기 의료기관 대상 랜섬...
    Date2021.10.27
    Read More
  3. [분석보고서] 2021년 랜섬웨어 스페셜 리포트

    보고서 보기 - https://www.krcert.or.kr/filedownload.do?attach_file_seq=3278&attach_file_id=EpF3278.pdf 1. 랜섬웨어의 최근 동향   1.1 랜섬웨어 동향 및 시사점   1.2 랜섬웨어의 확산   1.3...
    Date2021.09.24
    Read More
  4. 반도체가 만든 가능성, 손 위에서 펼쳐지는 PC게임_‘스팀 덱’에 쏠린 기대

    PC게임을 ‘닌텐도 스위치(Nintendo Switch)’1) 같은 휴대용 게임기로 즐길 수 있으면 좋겠다고 생각해 본 적이 있다. 휴대용 게임기의 폼팩터(Form Factor, 제품의 외형이나 크기, 물리적 배열)에는 여러...
    Date2021.09.13
    Read More
  5. 닌텐도, 10월 8일 디스플레이 개선 Nintendo Switch(OLED) 출시

    Nintendo기 10월 8일 Nintendo Switch(OLED)를 $349.99로 출시한다. Nintendo Switch(OLED)는 Nintendo Switch 시스템과 전체 크기가 비슷하지만 더 크고 생생한 7인치 OLED 화면으로 생생한 색상과 선...
    Date2021.08.12
    Read More
  6. HDR, 멋진 이미지 이면에 숨겨진 비밀

    사진을 찍을 때 뚜렷한 대비를 사용하면 실제로 보이는 것을 완전히 담아내지 못할 때가 많다. 이럴 때 기술과 현실 사이의 격차를 줄여주는 기술이 바로 HDR(High Dynamic Range)이다. HDR 센서를 설계하...
    Date2021.07.14
    Read More
  7. [반도체 특강] 넷다이(Net Die), 반도체 수익성을 결정하다

    자동차 공장에서 동일한 장비와 인력으로 2배의 자동차 대수를 생산할 수 있다면, 어떤 생각을 할까요? 기술적 난관에 부딪히고, 더 많은 노동력이 필요하더라도 2배 생산의 목표를 달성하기 위해 모든 수...
    Date2021.06.21
    Read More
  8. 고체연료? 액체연료? 로켓엔진 연료의 세계

    “5.4.3.2.1.0 점화. 발사!” 머리에 태극 문양을 새긴 발사체가 거대한 연기에 휩싸이더니 순간 기다란 화염 기둥 위로 치솟았다. 미국 케이프 커내버럴 우주센터 발사대의 한복판, 꼭대기에 걸린 태극 문양...
    Date2021.05.10
    Read More
  9. 올해 메모리 반도체 시장 성장 이끌 키팩터(Key Factor)는?

    최근 전세계적으로 화두가 되고 있는 8인치 파운드리 및 차량용 반도체, DDI(Display Driver Integrated Circuit)1), 5G RFIC(Radio Frequency Integrated Circuit)2) 등 비메모리 반도체 공급 부족은 2분...
    Date2021.05.10
    Read More
  10. 중고 거래 플랫폼이 흥하는 이유는?

    요즘 당근마켓이 남녀노소 가리지 않고 많은 사람들 사이에서 장안에 화제다. 어차피 집에서 안 입거나 안 쓰는 물건을 버리긴 아깝고 해서 내다 팔아 짭짤한 용돈벌이를 한다는 것이다. 당근마켓처럼 집안...
    Date2021.05.10
    Read More
  11. 자신이 사용중인 인터넷 속도 측정 방법(KT/LG/SK)

    현재 이슈가 되고 있는 것처럼, 본인의 가정에서 사용중인 유선 인터넷(KT/LG/SK)의 속도를 측정 후 정상적인 서비스를 받고 있는지 확인할 필요성이 있다.  아래 링크에서 인터넷 속도를 측정한 뒤...
    Date2021.04.24
    Read More
  12. M1 Mac 정식 대응 Parallels Desktop 16.5 제공 시작

    Parallels는 14일(현지시간) M1 Mac에 정식 대응한 Parallels Desktop 16.5 for Mac 제공을 시작했다. Parallels는 지난해(2020년)부터 M1 Mac을 지원하는 가상머신 환경의 테크니컬 프리뷰 버전으...
    Date2021.04.19
    Read More
  13. 보건복지부, 의료기관 사이버 보안 대폭 강화(진료정보침해대응센터)

    보건복지부가 국내 민간 의료기관들의 사이버 공격 대응 능력을 대폭 강화하기 위해 국내 최고 보안 전문가와 최고 IT 전문가로 구성된 특급 조직 '진료정보침해대응센터'를 운영하며 ...
    Date2021.04.05
    Read More
  14. 한국형 F22 전투기, 리틀 랩터 'KFX' 드디어 공개

    한국의 전투기 국산화가 눈앞으로 다가왔다. 현존 최강 미국의 F22 랩터를 닮아 리틀 랩터로 불리는 한국의 "KFX", 하늘을 지배할 것
    Date2021.03.20
    Read More
  15. Intel® Xe HPG Teaser | Intel Software

    See the next step in Intel's entry into discrete graphics! Intel is excited about our upcoming discrete graphics processor, so we wanted to share a short teaser video. Learn more about this,...
    Date2021.03.19
    Read More
  16. Introducing the New 3rd Gen AMD EPYC™ Processors

    Delivering on our promise to continuously drive innovation to help solve the world’s biggest challenges, AMD introduces the 3rd Gen AMD EPYC™ server processors. AMD EPYC™ 7003 series helps el...
    Date2021.03.19
    Read More
  17. Google — Year in Search 2020 (구글 올해의 검색어)

    In times of uncertainty, people seek understanding and meaning. This year, the world searched “why” more than ever. This film features the questions we asked this year, with words and narrati...
    Date2021.03.15
    Read More
  18. Python 머신러닝 강좌 - 5. Pandas DataFrame에 질의(Query)

    안녕하세요. SQLER의 코난 김대우입니다.  이번 강좌에서는, Python 머신러닝 강좌 - 5. Pandas DataFrame에 질의(Query)를 진행토록 하겠습니다. 예제 노트북 파일 : 5. Pandas DataFrame에 질의(Query)...
    Date2021.03.15
    Read More
  19. Python 머신러닝 강좌 - 4. Pandas DataFrame

    안녕하세요. SQLER의 코난 김대우입니다.  이번 강좌에서는, Python 머신러닝 강좌 - 4. Pandas DataFrame을 진행토록 하겠습니다. 예제 노트북 파일 : 4. Pandas DataFrame 예제 노트북   SQLER에서 ...
    Date2021.03.15
    Read More
  20. Python 머신러닝 강좌 - 3. Pandas 소개

    안녕하세요. SQLER의 코난 김대우입니다.  이번 강좌에서는, Python 머신러닝 강좌 - 3. Pandas 소개를 진행토록 하겠습니다. 예제 노트북 파일 : pandas와 Series와 DataFrame 예제 노트북 파일   SQL...
    Date2021.03.15
    Read More
  21. Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성

    안녕하세요. SQLER의 코난 김대우입니다.  이번 강좌에서는, Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성을 진행토록 하겠습니다.   SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록   코...
    Date2021.03.15
    Read More
  22. Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성

    안녕하세요. SQLER의 코난 김대우입니다.  이번 강좌에서는, Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성을 진행토록 하겠습니다.   SQLER에서 진행되는 전체 Python / 머신러닝 ...
    Date2021.03.15
    Read More
  23. 리눅스 서버에 워드프레스 설치

    워드프레스(WordPress)는 오픈 소스 기반의 웹사이트와 블로그를 손쉽게 만들 수 있는 설치형 블로그로 간단하게 설치하여 고급스럽고 전문적인 웹사이트를 쉽게 만들 수 있게 해준다. 전 세계적으로 워드...
    Date2021.03.15
    Read More
  24. GPS를 넘어, 인공지능을 활용한 위치 파악 기술

    GPS 기반 위치 파악 기술의 한계 이제 내비게이션은 일상생활에서 없어서는 안 될 필수품이 됐다. 스마트폰은 자동차 내비게이션 장치로도 사용되며 스마트 워치는 등산 길잡이로도 사용할 수 있다. 그렇다...
    Date2021.03.07
    Read More
  25. Windows 10에서 Wi-Fi WPA3 이용시 블루스크린 패치 공개

    Microsoft는 11일, Windows 10(버전 1909)에서 무선 LAN 암호화 규격 Wi-Fi Protected Access 3(WPA3)을 사용할 시 블루스크린이 발생하는 문제를 해결하는 취약성 패치 KB5001028을 배포한다.   이 문제...
    Date2021.02.16
    Read More
  26. 2021년 사이버 위협 전망 - 글로벌 및 국내 타겟

    □ 글로벌 전망  1. 표적형 공격 랜섬웨어의 확산과 피해규모 증가 - 공통  2. 고도화된 표적형 악성 이메일 - 호주  3. 코로나-19 사이버 공격 팬데믹 - 인도  4. 다크웹 유출 정보를 활용한 2차 공격 기승...
    Date2021.01.28
    Read More
  27. 국내 PC방 하드웨어 점유율, "인텔+엔비디아 99%"

    국내 PC방 시장을 분석하는 게임트릭스(http://www.gametrics.com/)의 2021년 1월 14일 기준 하드웨어 점유율. CPU 부문을 보면 브랜드 별로 인텔의 점유율은 99.67%, AMD 점유율은 0.33%를 나타...
    Date2021.01.18
    Read More
  28. 솔라윈즈 오리온 플랫폼 보안 업데이트 권고-2

    □ 개요  o 솔라윈즈社 제품에서 취약점이 발견됨에 따라 보안 업데이트 권고  o 해당 제품을 사용중인 국내 이용자들은 해당 취약점을 악용한 악성코드 감염 등의 피해를 입을 수 있으므로, 대응 방안에 따...
    Date2021.01.02
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 47 Next
/ 47