ABOUT ME

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

     

     

     

     

     

     

     

     

     

     

     

    실행결과는 복사 붙여넣기이므로 이상해도 양해부탁드립니다.

     

     

     

     

     

    데이터프레임에 새로운 컬럼 추가하기

     

     

    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

     

     

     

    컬럼 추가하기 1

    내가 추가하고자 하는 컬럼의 명을 지정해 준 후 데이터 값을 할당해준다.
    limitStudent 컬럼(정원)을 추가하고, 값을 모두 40으로 저장

     

    df4['limitStudent'] = 40
    df4

     

    실행결과

     

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

     

     

     

     

     

    컬럼 추가하기 2
    numStudent 컬럼(수강학생수)을 추가하고, 값을 25,30,10,23,17로 저장 

    주의할 점

    새로운 컬럼을 추가할 경우

     원본의 데이터프레임의 행(row)의 개수와 신규로 할당되는 값의 개수가 같아야 한다.[25, 30, 10, 13] 만 저장시 에러!

     

    df4['numStudent'] = [25, 30, 10, 23, 17]
    df4

     

     

     

    컬럼 추가하기 3 (기존 컬럼에 함수를 적용한 결과로 값을 할당하기)

    priceLevel 컬럼을 추가하고, 
    Price가 200과 같거나 크면, High, 200보다 작으면 Low

     

     

    #함수 생성
    
    def get_plevel(X):
        if X >= 200:
            return 'High'
        else:
            return 'Low'

     

     

    apply() 함수 --> 함수를 적용하기 위한 함수

     

     

    #df4.sum() 아래와 동일
    #df4.apply('sum') 위와 동일
    df4.apply(lambda X: X.sum())

     

     

    실행결과

     

     

    Class           IoTNetworkEconomyBig DataCloud
    Year                                     10090
    Price                                      919
    Location                KoreaKoreaKoreaUSKorea
    limitStudent                               200
    numStudent                                 105
    dtype: object

     

     

     

    df4['priceLevel'] = df4.apply(lambda X:get_plevel(X.Price), axis = 1)
    df4

     

     

    실행결과

     

    price값이 생성된 것을 알 수 있다.

     

     

    	Class	Year	Price	Location	limitStudent	numStudent	pricelevel	priceLevel
    C01	IoT	2018	100	Korea	40	25	Low	Low
    C02	Network	2017	125	Korea	40	30	Low	Low
    C03	Economy	2018	132	Korea	40	10	Low	Low
    C04	Big Data	2018	312	US	40	23	High	High
    C05	Cloud	2019	250	Korea	40	17	High	High

     

     

     

     

     

    산술 연산

     

     

    1차원 데이터와 값 간의 연산

     

     

    sr = Series([3,5,7,9])
    sr + 100

     

     

    sr + 100
    sr + 100
    0    103
    1    105
    2    107
    3    109
    dtype: int64

     

     

     

    컬럼 추가하기 4 (기존 컬럼을 이용하여 새 컬럼 추가하기)
    income 컬럼을 추가하고, Price와 numStudent의 값을 곱한 값으로 할당

     

     

    df4['income'] = df4.Price * df4.numStudent
    df4

     

     

    실행결과

     

     

    Class	Year	Price	Location	limitStudent	numStudent	pricelevel	priceLevel	income	rate
    C01	IoT	2018	100	Korea	40	25	Low	Low	2500	62.5
    C02	Network	2017	125	Korea	40	30	Low	Low	3750	75.0
    C03	Economy	2018	132	Korea	40	10	Low	Low	1320	25.0
    C04	Big Data	2018	312	US	40	23	High	High	7176	57.5
    C05	Cloud	2019	250	Korea	40	17	High	High

     

     

     

     

     

     

    실습. rate 컬럼을 추가하고, 충원율을 계산하여 할당. 
    충원율은 정원(limitStudent) 대비 수강학생수(numStudent) 비율

     

    df4['rate'] = df4.numStudent/df4.limitStudent*100
    df4

     

     

    실행결과

     

     

    Class	Year	Price	Location	limitStudent	numStudent	pricelevel	priceLevel	income	rate
    C01	IoT	2018	100	Korea	40	25	Low	Low	2500	62.5
    C02	Network	2017	125	Korea	40	30	Low	Low	3750	75.0
    C03	Economy	2018	132	Korea	40	10	Low	Low	1320	25.0
    C04	Big Data	2018	312	US	40	23	High	High	7176	57.5
    C05	Cloud	2019	250	Korea	40	17	High	High	4250	42.5

     

     

     

     

     

     

     

     

    불필요한 컬럼이나 데이터 삭제하기

     

     

     

    drop()
    첫번째 인자 : 삭제하고자 하는 인덱스면
    두번째 인자 : axis(0 or 1)

     

     

     

     

     

     

    C05 강의 삭제

     

    df4.drop('C05',0)

     

    priceleve 컬럼 삭제
    위에 C05 를 삭제 했지만 원본 데이터에는 함수가 결과가 반영되지 않는다

    df4.drop('pricelevel',1)

     

    원본 변경을 하고 싶을 시

    inplace=True 값을 넣으면 된다!

     

    df4.drop('priceLevel', 1, inplace=True)

     

     

    위와 동일 (원본 변경 시)

     

    df4 = df4.drop('rate', 1)
    df4

     

     

     

    반응형

    댓글

Designed by Tistory.