프로그래밍/파이썬

EDA - 1단계 : 데이터 다루기 - 정보

매 석 2023. 7. 15. 14:10
반응형

- 과거내용

 

EDA - 1단계 : 데이터 다루기 - 가공

과거내용 DataFrame - 가공 1. 삽입 insert 명령어로 각각 삽입될 열의 위치, 이름, 값을 순서대로 입력...

blog.naver.com

 

- DataFrame - 정보

1. 인덱스 정보

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#인덱스
print(df.index)

Index(['row1', 'row2', 'row3'], dtype='object')

 

 

​인덱스의 이름과 타입을 index 함수를 통해 얻을 수 있다.

 

2. 열 정보

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#열 정보
print(df.columns)

Index(['col1', 'col2', 'col3'], dtype='object')

 

인덱스와 마찬가지로 columns 함수를 이용해

컬럼의 이름과 타입을 얻을 수 있다.

3. 데이터 타입

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#데이터 타입
print(df.dtypes)

col1    int64
col2    int64
col3    int64
dtype: object

 

​dtypes 함수를 이용해 데이터의 타입을 확인할 수 있다.

 

4. 축

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#축 정보
print(df.axes)

[Index(['row1', 'row2', 'row3'], dtype='object'), 
Index(['col1', 'col2', 'col3'], dtype='object')]

 

axes 함수를 이용해 행과 열의 정보를 얻을 수 있다.

axes[0], axes[1]로 행과 열을 따로 얻을 수 있다.

5. 차원

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#차원 정보
print(df.ndim)

2

 

ndim 함수를 이용해 차원을 얻을 수 있다.

시리즈이면 1, 데이터프레임이면 2를 반환한다.

6. 요소의 갯수

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#요소의 갯수
print(df.size)

9

 

​size 함수를 이용해 요소의 갯수를 확인할 수 있다.

 

7. 차원의 형태

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#차원의 형태
print(df.shape)
(3, 3)

 

shape를 이용하면 행과 열의 크기를 알 수 있다.

순서대로 행과 열을 반환한다.

8. 정보축

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#정보축
print(df.keys)

<bound method NDFrame.keys of       col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9>

 

​keys 함수를 사용하면 시리즈에서는 index, 데이터프레임에서는 열을 반환한다.

 

9. 키값

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

#키값
print(df.get('col1'))

row1    1
row2    4
row3    7
Name: col1, dtype: int64

 

get 함수를 사용해 열의 값들을 가져올 수 있다.

또한 타입도 알 수 있다.

10. 비교

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     4     5     6
row3     7     8     9

      col1  col2  col3
row1     2     3     4
row2     4     5     7
row3     5     8     9

#비교
print(df.compare(df2,align_axis=0))

            col1  col2  col3
row1 self    1.0   2.0   3.0
     other   2.0   3.0   4.0
row2 self    NaN   NaN   6.0
     other   NaN   NaN   7.0
row3 self    7.0   NaN   NaN
     other   5.0   NaN   NaN

 

compare 함수를 이용해 두 데이터프레임을 비교할 수 있다.

기본적으로 다른 값이면 각각 self와 other에 기록되고, 같으면 NaN값이 된다.

또한 align_axis를 이용해 멀티 행 또는 열을 선택할 수 있다.

이외에도 keep_shape, keep_equal 등의 옵션이 있다.

11. 행의 수

#원본 데이터
     col1  col2  col3
row1    A     2     3
row2    B     5     6
row3    A     2     6

#행의 수
print(df.value_counts(subset=['col1']))

A       2
B       1
dtype: int64

 

value_counts를 사용해서 행의 수를 구할 수 있다.

subset으로 원하는 행만 지정할 수 있고, normalize로 수 대신 비율로 표현할 수 있다.

또한 sort, ascending, dropna 등의 옵션을 사용할 수 있다.

12. 고유 요소의 수

#원본 데이터 
     col1  col2  col3
row1    A     2     3
row2    B     5  <NA>
row3    A     2     6

#고유 요소 수
print(df.nunique(axis=0,dropna=False))

col1    2
col2    2
col3    3
dtype: int64

 

nunique를 사용해서 고유 요소의 수를 구할 수 있다.

axis로 행과 열 중 선택하고, dropna는 False는 NaN값도 고유한 값으로 포함하는 것이고,

True는 그렇지 않은 것이다. 결과적으로 고유한 수가 몇 개인지 얻을 수 있다.