ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 살펴보기 (판다스/데이터프레임)
    Studies/Data Analytics&ML 2022. 9. 25. 23:25

    1 . 실습 3_1

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    # read_csv() 함수로 df 생성
    df = pd.read_csv('./auto-mpg.csv', header=None)
    
    # 열 이름을 지정
    df.columns = ['mpg','cylinders','displacement','horsepower','weight',
                  'acceleration','model year','origin','name']
    
    # 데이터프레임 df의 내용을 일부 확인 
    print(df.head())     # 처음 5개의 행
    print('\n')
    print(df.tail())     # 마지막 5개의 행
    
    # df의 모양과 크기 확인: (행의 개수, 열의 개수)를 투플로 반환 
    print(df.shape)
    print('\n')
    
    # 데이터프레임 df의 내용 확인 
    print(df.info())
    print('\n')
    
    # 데이터프레임 df의 자료형 확인 
    print(df.dtypes)
    print('\n')
    
    # 시리즈(mog 열)의 자료형 확인 
    print(df.mpg.dtypes)
    print('\n')
    
    # 데이터프레임 df의 기술통계 정보 확인 
    print(df.describe())
    print('\n')
    print(df.describe(include='all'))

     

    (2) 실행결과 (describe()만)

         - df.describe()

         

     

          -df.describe(includes='all')     

         

     

    2. 실습 3_2

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    # read_csv() 함수로 df 생성
    df = pd.read_csv('./auto-mpg.csv', header=None)
    
    # 열 이름을 지정
    df.columns = ['mpg','cylinders','displacement','horsepower','weight',
                  'acceleration','model year','origin','name']
    
    # 데이터프레임 df의 각 열이 가지고 있는 원소 개수 확인 
    print(df.count())
    print('\n')
    
    # df.count()가 반환하는 객체 타입 출력
    print(type(df.count()))
    print('\n')
    
    # 데이터프레임 df의 특정 열이 가지고 있는 고유값 확인 
    unique_values = df['origin'].value_counts() 
    print(unique_values)
    print('\n')
    
    # value_counts 메소드가 반환하는 객체 타입 출력
    print(type(unique_values))

    (2) 실행결과

    (3) 설명

         unique_values = df['origin'].value_counts() 

         origin열에는 값이 1 또는 2 또는 3이 존재하는데, 각각 개수가 몇개인지 세주는 메소드

     

    3. 실습 3_3

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    # read_csv() 함수로 df 생성
    df = pd.read_csv('./auto-mpg.csv', header=None)
    
    # 열 이름을 지정
    df.columns = ['mpg','cylinders','displacement','horsepower','weight',
                  'acceleration','model year','origin','name']
    
    # 평균값 
    print(df.mean())
    print('\n')
    print(df['mpg'].mean())
    print(df.mpg.mean())
    print('\n')
    print(df[['mpg','weight']].mean())
    
     # 중간값 
    print(df.median())
    print('\n')
    print(df['mpg'].median())
    
    # 최대값 
    print(df.max())
    print('\n')
    print(df['mpg'].max())
    
     # 최소값 
    print(df.min())
    print('\n')
    print(df['mpg'].min())
    
     # 표준편차 
    print(df.std())
    print('\n')
    print(df['mpg'].std())
    
    # 상관계수 
    print(df.corr())
    print('\n')
    print(df[['mpg','weight']].corr())

     

    4. 실습 3_4

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    df = pd.read_excel('./남북한발전전력량.xlsx', engine='openpyxl')  # 데이터프레임 변환 
    
    print(df)
    
    df_ns = df.iloc[[0,5], 3:]            # 남한, 북한 발전량 합계 데이터만 추출
    # print(df_ns)
    df_ns.index = ['South','North']        # 행 인덱스 변경
    df_ns.columns = df_ns.columns.map(int) # 열 이름의 자료형을 정수형으로 변경
    print(df_ns.head())
    # print('\n')
    
    # 선 그래프 그리기
    df_ns.plot()
    
    # 행, 열 전치하여 다시 그리기
    tdf_ns = df_ns.T
    print(tdf_ns.head())
    print('\n')
    tdf_ns.plot()

     

    (2) 실행결과

     

     

     

    (3) 설명

    전치를 하는 이유는 df_ns.plot()을 했을 때 행 인덱스가 x축으로 가는데,

    위 그래프에서는 년도가 x축으로 가는 게 그래프가 가시적으로 보이므로,

    전치를 한다.

     

    5. 실습 3_5

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    df = pd.read_excel('./남북한발전전력량.xlsx', engine='openpyxl')  # 데이터프레임 변환 
    
    df_ns = df.iloc[[0, 5], 3:]            # 남한, 북한 발전량 합계 데이터만 추출
    df_ns.index = ['South','North']        # 행 인덱스 변경
    df_ns.columns = df_ns.columns.map(int) # 열 이름의 자료형을 정수형으로 변경
    
    # 행, 열 전치하여 막대 그래프 그리기
    tdf_ns = df_ns.T
    print(tdf_ns.head())
    print('\n')
    tdf_ns.plot(kind='bar')

     

    (2) 실행결과

     

    6. 실습 3_6

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    df = pd.read_excel('./남북한발전전력량.xlsx', engine='openpyxl')  # 데이터프레임 변환 
    
    df_ns = df.iloc[[0, 5], 3:]            # 남한, 북한 발전량 합계 데이터만 추출
    df_ns.index = ['South','North']        # 행 인덱스 변경
    df_ns.columns = df_ns.columns.map(int) # 열 이름의 자료형을 정수형으로 변경
    
    # 행, 열 전치하여 히스토그램 그리기
    tdf_ns = df_ns.T
    tdf_ns.plot(kind='hist')

     

    (2) 실행결과

     

    7.실습 3_7

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    # read_csv() 함수로 df 생성
    df = pd.read_csv('./auto-mpg.csv', header=None)
    
    # 열 이름을 지정
    df.columns = ['mpg','cylinders','displacement','horsepower','weight',
                  'acceleration','model year','origin','name']
    
    # 2개의 열을 선택하여 산점도 그리기
    df.plot(x='weight',y='mpg', kind='scatter')

    (2) 실행결과

     

    8. 실습 3_8

    (1) 코드

    # -*- coding: utf-8 -*-
    
    import pandas as pd
    
    # read_csv() 함수로 df 생성
    df = pd.read_csv('./auto-mpg.csv', header=None)
    
    # 열 이름을 지정
    df.columns = ['mpg','cylinders','displacement','horsepower','weight',
                  'acceleration','model year','origin','name']
    
    # 열을 선택하여 박스 플롯 그리기
    df[['mpg','cylinders']].plot(kind='box')

     

    (2) 실행결과

    'Studies > Data Analytics&ML' 카테고리의 다른 글

    [딥러닝의 이해] 학습이란? + Loss Function  (0) 2023.09.17
    [머신러닝] 회귀(Regression)  (0) 2023.01.23

    댓글

Designed by Tistory.