ABOUT ME

Today
Yesterday
Total
  • [python] 파이썬을 이용한 빅 데이터 실습 5- DataFrame
    Languages/python 2021. 10. 30. 18:50
    반응형

     

     

     

     

     

     

     

     

    데이터 프레임 조회하기

     

     

     

    테스트 데이터 프레임 생성

     

    df4 = DataFrame({'Class': ['IoT','Network', 'Economy','Big Data', 'Cloud'],
                           'Year': [2018, 2017, 2018, 2018, 2019],
                           'Price': [100, 125, 132, 312, 250],
                           'Location': ['Korea','Korea', 'Korea', 'US','Korea']},
                          index=['C01','C02','C03', 'C04', 'C05'])
    df4

     

     

    실행결과

     

     

     

     

     

     

    원하는 열(컬럼)만 조회하기

    -Class만 조회하기

     

     

    색인 기호 대괄호([])안에 색인하고자 하는 컬럼 인덱스의 이름을 지정해준다

     

    df4['Class']

     

     

    실행결과

     

     

    C01         IoT
    C02     Network
    C03     Economy
    C04    Big Data
    C05       Cloud
    Name: Class, dtype: object

     

     

    두개의 컬럼 조회하기

    -Class와 Price 조회하기

     

     

    색인기호([])안에 색인하고자 하는 컬럼 인덱스들을 각각 지정한다

     

    df4[['Class','Price']] // 그냥 쓰면 에러 리스트로 담아서 전달

     

    실행결과

     

          Class    Price
    C01	IoT	100
    C02	Network	125
    C03	Economy	132
    C04	Big Data312
    C05	Cloud	250

     

     

     

     

     

    원하는 행[로우]만 조회하기

     

     

    데이터프레임 색인 방법

     

    기본적으로는 컬럼 인덱스를 우선적으로 색인

    로우 인덱스로 색인을 하고 싶은 경우에는

    loc 또는 iloc 속성을 사용해야 한다

     

    #df4.iloc[3] // 숫자 인덱스는 .iloc 사용
    df4.loc['C04'] //둘이 동일

     

     

    Quiz) 컬럼인덱스와 로우 인덱스를 변환하기 위해서 axis를 사용할 수 있을까?

     

    answer) x (error)

     

     

     

     

     

     

     

     

     

    인덱스 슬라이싱

     

    범위 값을 주고, 그 범위에 해당하는 데이터를 색인하는 방법

    숫자, 문자 인덱스 모두 슬라이싱 가능

    스타트 인덱스부터 엔드 인덱스까지의 범위 값에 해당하는 데이터 리턴

    숫자 인덱스 사용 시 엔드 인덱스 포함이 안된다

     

     

     

    C02 ~ C04 까지의 강의 조회

     

    색인의 조건이 인덱스 슬라이싱인 경우 loc,iloc는 생략 가능하다

     

    df4.loc['C02':'C04']
    df4.loc[['C02','C03','C04']]
    df4.iloc[1:4] // 셋 다 동일

     

    실행결과

     

    
    	Class	Year	Price	Location
    C02	Network	2017	125	Korea
    C03	Economy	2018	132	Korea
    C04	Big Data 2018	312	US

     

     

     

    원하는 행과 열을 선택하여 조회하기

    C02, C03 강의의 Class와 Year 만 조회

     

    #df4[['Class','Year']].loc[['C02','C03']]
    #df4[['Class','Year']]['C02':'C03']
    #df4.loc[['C02','C03'],['Class','Year']]
    df4.loc['C02':'C03','Class':'Year'] //전부 동일

     

    ['C02','C03'] -> 로우 인덱스

    ['Class','Year'] -> 컬럼 인덱스

     

     

    실행결과

     

    	Class	Year
    C02	Network	2017
    C03	Economy	2018

     

     

     

     

     

    순서가 없는 컬럼 인덱스

     

    df4.loc[:,'Class':'Price']

     

     

    	Class	Year	Price
    C01	IoT	2018	100
    C02	Network	2017	125
    C03	Economy	2018	132
    C04	Big Data 2018	312
    C05	Cloud	2019	250

     

     

     

     

     

     

     

    조건 색인을 통해 특정 조건에 부합하는 데이터 선택하기

     

     

    - 조건색인이란

     

    들어있는 값들에 조건을 걸고, 그 조건을 충족하는 데이터만 가져오는 방식

     

     

     

     

    Price가 200 이상인 강의 선택

    -> df4 >= 200 => error

    인덱스 설정을 안했기 때문

     

    df4['Price'] >= 200

     

    실행결과

     

    C01    False
    C02    False
    C03    False
    C04     True
    C05     True
    Name: Price, dtype: bool

     

     

     

    실습하기 -> 실행 결과는 pass

     

     

    # 실습 1. 'Year' 컬럼만 선택
    
    df4['Year']
    
    # 실습 2. 'Class'와 'Location' 컬럼만 선택
    
    df4[['Class','Location']]
    
    # 실습 3. C01과 C03 강의의 모든 컬럼 선택
    
    df4.loc[['C01','C03']]
    
    # 실습 4. C01~C03 강의의 Class와 Price만 선택
    
    df4.loc[['C01','C02','C03'],['Class','Price']]
    
    # 실습 4. 2019년도 강의만 조회
    
    df4[df4.Year == 2019]
    
    # 실습 5. 가장 가격이 비싼 강의 정보만 조회
    
    df4.Price == df4.Price.max()
    
    # 실습 6. 2018, 2019년도에 개설된 강의 조회
    
    #df4[df4.Year >= 2018]
    df4.Year.isin([2018,2019])
    
    # 실습 7. 2018년도에 한국에서 개설된 강의 조회
    
    (df4.Year == 2018) & (df4.Location == 'Korea')
    반응형

    댓글

Designed by Tistory.