본문 바로가기

Artificial Intelligence/Pandas Basics

[Pandas Basics] 데이터 프레임이 뭐야?

728x90

데이터 프레임(Data Frame)은 index, column, value로 이뤄진 데이터 타입으로 2차원 배열의 형태를 가지고 있다.

 

판다스의 데이터 프레임을 통해 알아볼 것은 다음과 같다.

 

  • 딕셔너리를 사용한 생성(리스트 딕셔너리 -> 데이터 프레임)
  • 리스트를 사용한 생성(딕셔너리 리스트 -> 데이터 프레임)
  • 데이터 프레임 index 설정 1, 2
  • 데이터 프레임 column, index 변경
  • 데이터 프레임 row 추가, 수정, 선택, 삭제
  • 데이터 프레임 column 추가, 수정, 선택, 삭제
  • 데이터 프레임 타입 확인 및 수정
  • 데이터 프레임 상위 데이터 출력, 하위 데이터 출력

다음은 주피터 노트북의 실습 코드와 결과 화면이다. 실습 코드의 실행 화면은 같은 블록 밑에서 확인할 수 있다.

 

# 리스트 딕셔너리 -> 데이터 프레임
data1 = [
    {'name': 'righteous', 'email': 'righteous@gmail.com'},
    {'name': 'olivevolcano', 'email': 'olivevolcano@naver.com'}
]
df1 = pd.DataFrame(data1)
print(df1)

           name                   email
0     righteous     righteous@gmail.com
1  olivevolcano  olivevolcano@naver.com

 

위의 코드는 리스트 안에 딕셔너리를 만들어서 데이터 프레임을 생성하는 방법이다. 해당 방법은 row 별로 딕셔너리를 작성해준다.

 

# 딕셔너리 리스트 -> 데이터 프레임
data2 = {
    'name': ['righteous', 'olivevolcano'],
    'email': ['righteous@gmail.com', 'olivevolcano@naver.com']
}
df2 = pd.DataFrame(data2)
print(df2)

           name                   email
0     righteous     righteous@gmail.com
1  olivevolcano  olivevolcano@naver.com

 

위의 코드는 딕셔너리 안에 리스트를 만들어서 데이터 프레임을 생성하는 방법이다. 해당 방법은 column 별로 리스트를 작성한다.

 

# 데이터 프레임 index 설정 1
df = pd.DataFrame(data2, index=['a', 'b'])
print(df)

           name                   email
a     righteous     righteous@gmail.com
b  olivevolcano  olivevolcano@naver.com

 

위의 코드는 데이터 프레임을 설정하면서 index를 설정해주는 방법이다. index는 리스트로 작성해주어야 하고, data2의 index 개수와 같아야 한다.

 

# 데이터 프레임 index 설정 2
df = pd.DataFrame(data2, index=list('ab'))
print(df)

           name                   email
a     righteous     righteous@gmail.com
b  olivevolcano  olivevolcano@naver.com

 

위의 코드는 데이터 프레임을 설정하면서 index를 설정해주는 방법이다.

 

# 데이터 프레임 column, index 변경
df.rename(columns={'name':'name2', 'email':'email2'}, inplace=True)
df.rename(index={'a': 'c', 'b': 'd'}, inplace=True)
print(df)

          name2                  email2
c     righteous     righteous@gmail.com
d  olivevolcano  olivevolcano@naver.com

 

위의 코드는 만들어진 데이터 프레임의 index와 column을 재설정해주는 방법이다. 해당 코드에서 inplace = True를 작성해주면 설정값이 원본 데이터에도 적용이 된다.

 

# 데이터 프레임 row 추가
df.loc['e'] = {'name2': 'dead_pp', 'email2':'deap_pp@nate.com'}
print(df)

          name2                  email2
c     righteous     righteous@gmail.com
d  olivevolcano  olivevolcano@naver.com
e       dead_pp        deap_pp@nate.com

 

위의 코드는 loc를 사용하여 row를 추가하는 방법이다. loc는 [행 인덱스, 열 이름]을 사용하여 원소를 선택하는 방법입니다. loc ['e']를 통해서 index 이름이 e인 row를 선택해준다. 해당 row에 값이 있다면 수정해주고, 값이 없다면 값을 새로 추가해준다.

 

# 데이터 프레임 row 수정
df.loc['d'] = {'name2': 'olivevolcano2', 'email2':'olivevolcano2@nate.com', 'id': 3.0}
print(df)

           name2                  email2
c      righteous     righteous@gmail.com
d  olivevolcano2  olivevolcano2@nate.com
e        dead_pp        deap_pp@nate.com

 

위의 코드는 loc를 통해서 row를 수정하는 방법이다.

 

# 데이터 프레임 row 선택
df.loc['c']

name2               righteous
email2    righteous@gmail.com
Name: c, dtype: object

 

위의 코드는 loc를 통해서 row를 선택하는 방법이다.

 

# 데이터 프레임 row 삭제
df2 = df.drop('c')
print(df2)

           name2                  email2
d  olivevolcano2  olivevolcano2@nate.com
e        dead_pp        deap_pp@nate.com

 

drop은 데이터 프레임에서 row, column의 데이터를 삭제할 때 사용하는 함수이다. row 삭제 방법은 drop(행 인덱스 또는 배열, axis=0) drop의 axis값의 디폴트 값은 0이다.

 

# 데이터 프레임 column 추가
df['id'] = 0
print(df)

           name2                  email2  id
c      righteous     righteous@gmail.com   0
d  olivevolcano2  olivevolcano2@nate.com   0
e        dead_pp        deap_pp@nate.com   0

 

위의 코드는 데이터 프레임에 column을 추가하는 방법이다.

 

# 데이터 프레임 column 수정
df['id'] = range(1,4)
print(df)

          name2                  email2  id
c      righteous     righteous@gmail.com   1
d  olivevolcano2  olivevolcano2@nate.com   2
e        dead_pp        deap_pp@nate.com   3

 

위의 코드는 데이터 프레임에 column을 수정하는 방법이다.

 

# 데이터 프레임 column 선택
df['name2']

c        righteous
d    olivevolcano2
e          dead_pp
Name: name2, dtype: object

 

위의 코드는 데이터 프레임에 column을 선택하는 방법이다.

 

# 데이터 프레임 column 삭제
df2 = df.drop('id', axis=1)
print(df2)

           name2                  email2
c      righteous     righteous@gmail.com
d  olivevolcano2  olivevolcano2@nate.com
e        dead_pp        deap_pp@nate.com

 

위의 코드는 데이터 프레임에 column을 삭제하는 방법이다. column 삭제 방법은 drop(열 이름 또는 배열, axis=1)이다.

 

# 데이터 프레임 타입 확인
df.dtypes

name2     object
email2    object
id         int32
dtype: object

 

위의 코드는 데이터 프레임의 column들의 타입을 확인하는 방법이다.

 

# 데이터 프레임 타입 수정
df = df.astype({'id': 'float'})
df.dtypes

name2      object
email2     object
id        float64
dtype: object

 

위의 코드는 데이터 프레임의 column의 타입을 수정하는 방법이다

 

# 상위 데이터 출력
print(df.head(2))

           name2                  email2   id
c      righteous     righteous@gmail.com  1.0
d  olivevolcano2  olivevolcano2@nate.com  2.0

 

위의 코드는 상위 데이터를 출력하는 방법이다.

 

# 하위 데이터 출력
print(df.tail(2))

           name2                  email2   id
d  olivevolcano2  olivevolcano2@nate.com  2.0
e        dead_pp        deap_pp@nate.com  3.0

 

위의 코드는 하위 데이터를 출력하는 방법이다.

 

원본 Github 주소: github.com/piaochung/ml_with_python

728x90

'Artificial Intelligence > Pandas Basics' 카테고리의 다른 글

[Pandas Basics] 시리즈가 뭐야?  (0) 2021.02.10