ABOUT ME

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

     

     

     

     

     

     

     

     

    DataFrame

     

    주요속성과 함수 실습

     

     

    DataFrame 속성 조회하기(속성을 조회할 때에는 ()를 사용하지 않으니 주의!!!!)

     

     

    값이 들어있는 데이터프레임 생성

     

    # 3. 사전 타입 데이터를 이용하여 데이터 프레임 생성하기
    인구통계 = {'서울': [950, 945, 938.5],
            '대전':[50, 151, 145],
            '대구':[85, 88, 92],
            '부산':[180, 187, 192],
            '광주':[74, 80, 80]
          }
          
          
          df3 = DataFrame(data = 인구통계, index = [2018,2019,2020])
    
    df3

     

     

    실행결과

     

    
    df3 데이터프레임 생성
    
    	서울	대전	대구	부산	광주
    2018	950.0	50	85	180	74
    2019	945.0	151	88	187	80
    2020	938.5	145	92	192	80

     

     

    index : 데이터프레임의 인덱스를 리스트로 반환

     

    df3.index

     

    실행결과

     

    Int64Index([2018, 2019, 2020], dtype='int64')

     

     

     

     

     

    columns : 데이터프레임의 컬럼을 리스트로 반환

     

    df3.columns

     

    실행결과

     

    Index(['서울', '대전', '대구', '부산', '광주'], dtype='object')

     

     

     

     

    values : 데이터프레임의 데이터 반환 (ndarray)

     

    df3.values

     

     

    실행결과

     

    array([[950. , 50. , 85. , 180. , 74. ],

            [945. , 151. , 88. , 187. , 80. ],

            [938.5, 145. , 92. , 192. , 80. ]])

     

     

     

     

    shape : 행(row)과 열(columns)의 개수(차원)을 튜플로 반환

     

    df3.shpae

     

    실행결과

     

    (3, 5)

     

     

     

    T (Transpose) : 행과 열을 바꾸기

     

    df3.T

     

     

    실행결과

     

    	2018	2019	2020
    서울	950.0	945.0	938.5
    대전	50.0	151.0	145.0
    대구	85.0	88.0	92.0
    부산	180.0	187.0	192.0
    광주	74.0	80.0	80.0

     

     

     

     

    axes : 행과 열 이름을 리스트로 반환

     

    df3.axes

     

     

    실행결과

     

    [Int64Index([2018, 2019, 2020], dtype='int64'),

      Index(['서울', '대전', '대구', '부산', '광주'], dtype='object')]

     

     

     

     

     

    dtypes : 컬럼별 데이터타입 반환

     

     

    df3.dtypes

     

     

    실행결과

     

    서울    float64
    대전      int64
    대구      int64
    부산      int64
    광주      int64
    dtype: object

     

     

     

     

    size : DataFrame의 원소의 개수를 반환

     

    df3.size

     

     

    실행결과

     

    15

     

     

     

     

     

     

     

     

     

    데이터프레임 기본 함수(함수 에는 () 사용!)

     

    기본적으로 인자값들을 지정해 줄 수도 있고, 지정을 안 해 줄 수도 있다

    기본적으로 지정하고 있는 경우가 더 많다

     

     

     

     

     

    info() - 기본 정보 출력

     

    df3.info()

     

     

    실행결과

     

     

    <class 'pandas.core.frame.DataFrame'>
    Int64Index: 3 entries, 2018 to 2020
    Data columns (total 5 columns):
     #   Column  Non-Null Count  Dtype  
    ---  ------  --------------  -----  
     0   서울      3 non-null      float64
     1   대전      3 non-null      int64  
     2   대구      3 non-null      int64  
     3   부산      3 non-null      int64  
     4   광주      3 non-null      int64  
    dtypes: float64(1), int64(4)
    memory usage: 252.0 bytes

     

     

     

     

    describe() - 기본 통계 정보 출력

     

    df3.describe()

     

     

    실행결과

     

     

    	서울	        대전          대구	       부산	      광주
    count	3.000000	3.000000	3.000000	3.000000	3.000000
    mean	944.500000	115.333333	88.333333	186.333333	78.000000
    std	5.766281	56.659804	3.511885	6.027714	3.464102
    min	938.500000	50.000000	85.000000	180.000000	74.000000
    25%	941.750000	97.500000	86.500000	183.500000	77.000000
    50%	945.000000	145.000000	88.000000	187.000000	80.000000
    75%	947.500000	148.000000	90.000000	189.500000	80.000000
    max	950.000000	151.000000	92.000000	192.000000	80.000000

     

     

     

     

     

    통계 함수 (mean, sum, max, min, ...)

     

     

    #df3.mean()
    #df3.sum() // axis = 0
    #df3.sum(axis = 1) // 연도별 sum 값을 구하고 싶을 때
    #df3.median() // 중위값을 구하는 함수
    df3.quantile(0.25) // 분위값을 구하는 함수

     

     

    실행결과

     

     

    서울    941.75
    대전     97.50
    대구     86.50
    부산    183.50
    광주     77.00
    Name: 0.25, dtype: float64

     

     

     

     

     

     

    sample() - 일부 데이터를 랜덤으로 선택

                   전체 데이터가 너무 커서 한번에 보기 어려운 경우 주로 사용된다

     

    df3.sample(2, axis = 1)

    ※axis 인자는 로우 인덱스와 칼럼 인덱스를 지정해 줄 수 있다

     

     

    실행결과

     

          대전	대구
    2018	50	85
    2019	151	88
    2020	145	92

     

     

     

     

     

     

     

    head, tail(x) - 맨 앞 혹은 맨 뒤의 x개의 데이터만 출력

     

     

    df3.head(2)
    
    실행결과
    
             서울 대전 대구 부산 광주
    2018	950.5   50  85  180 74
    2019	945.0	151	88	187	80
    
    
    
    df3.tail(2)
    
    실행결과
    
             서울 대전 대구 부산 광주
    2019	945.0	151	88	187	80
    2020	938.5	145	92	192	80

     

    ((((((결과는 붙여넣기라 이상해도 이해해주세용

    수정하기 귀차나효~~~~~~~~~ㅜㅠㅠㅠ))))))

     

     

     

     

     

    nunique() - unique한 값의 개수

                    동일한 값이 있으면 동일한 값이 1개이다

     

    df3.nunique()

     

     

    실행결과

     

    서울    3
    대전    3
    대구    3
    부산    3
    광주    2
    dtype: int64

     

     

     

     

     plot() - 데이터 시각화 

     

    import matplotlib as plt
    plt.rcParams['font.family'] = 'Malgun Gothic' // 한글폰트 깨짐 처리 방법
    df3.plot()

     

     

    실행결과

     

     

     

     

     

     

     

    fillter() - 원하는 데이터만 선택

     

     

    #df3.filter([2018], axis = 0)
    #정규 표현식 - 대로 시작하는 도시를 다 선택하고 싶다면?
    #df3.filter(regex = '^대')
    #2010년대 행만 선택
    #df3.filter(regex = '^201', axis = 0)
    # 10년 단위의 행만 선택(2000,2010,2020, ...)
    df3.filter(regex = '0$', axis = 0)

     

     

     

    실행결과

     

     

    	서울	대전	대구	부산	광주
    2020	938.5	145	92	192	80

     

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.