본문 바로가기
공부한 것들../Pandas

Pandas 데이터 조회 및 변경

by bottle-an00 2024. 9. 13.

코드 프레소 [파이썬으로 배우는 Pandas] 강의 내용 정리

# Pandas DataFrame 데이터 조회 방법..?

이전 포스팅에서 Pandas의 DataFrame의 특징을 정리해보았는데 특징 중 하나는 2차원에 데이터를 저장한다는 것이다. 따라서, Pandas의 DataFrame의 데이터 조회는 행 데이터 조회와 열 데이터 조회로 나뉜다.

 

[열 데이터 조회 방법]

  • 인덱싱
  • .연산자 사용

[행 데이터 조회 방법]

  • df.loc 프로퍼티를 활용해 찾고자 하는 데이터의 인덱스를 입력

 

# 예시코드

# DataFrame 열 데이터 조회 방법

import pandas as pd 

# 실습 데이터 생성
score = { 'name' : ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
          'age': [20, 24, 23, 20, 27],
          'score': [100, 95, 80, 85, 97], 
          'grade': ['A','A','B','B','A'],
          'subject':['python', 'java','python', 'c','java']}
          
score_df = pd.DataFrame(data=score)
print(score_df)

print('\nColumns : name')
print(score_df['name'])

print('\nColumns : age')
print(score_df.age)
  name  age  score grade subject
0  Jessi   20    100     A  python
1   Emma   24     95     A    java
2   Alex   23     80     B  python
3  Jessi   20     85     B       c
4    Tom   27     97     A    java

Columns : name
0    Jessi
1     Emma
2     Alex
3    Jessi
4      Tom
Name: name, dtype: object

Columns : age
0    20
1    24
2    23
3    20
4    27
Name: age, dtype: int64

 

# DataFrame 다중 열 데이터 조회 방법

import pandas as pd 

# 실습 데이터 생성
score = { 'name' : ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
          'age': [20, 24, 23, 20, 27],
          'score': [100, 95, 80, 85, 97], 
          'grade': ['A','A','B','B','A'],
          'subject':['python', 'java','python', 'c','java']}
          
score_df = pd.DataFrame(data=score)
print(score_df)

print('\nColumns : name-subject-grade')
print(score_df[['name','subject','grade']])
 name  age  score grade subject
0  Jessi   20    100     A  python
1   Emma   24     95     A    java
2   Alex   23     80     B  python
3  Jessi   20     85     B       c
4    Tom   27     97     A    java

Columns : name-subject-grade
    name subject grade
0  Jessi  python     A
1   Emma    java     A
2   Alex  python     B
3  Jessi       c     B
4    Tom    java     A


# DataFrame 열 데이터 변경

import pandas as pd 

# 실습 데이터 생성
score = { 'name' : ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
          'age': [20, 24, 23, 20, 27],
          'score': [100, 95, 80, 85, 97], 
          'grade': ['A','A','B','B','A'],
          'subject':['python', 'java','python', 'c','java']}
          
score_df = pd.DataFrame(data=score)
print(score_df)

print('\nModify Column Data')
score_df['etc'] = 0
print(score_df)
    name  age  score grade subject
0  Jessi   20    100     A  python
1   Emma   24     95     A    java
2   Alex   23     80     B  python
3  Jessi   20     85     B       c
4    Tom   27     97     A    java

Modify Column Data
    name  age  score grade subject  etc
0  Jessi   20    100     A  python    0
1   Emma   24     95     A    java    0
2   Alex   23     80     B  python    0
3  Jessi   20     85     B       c    0
4    Tom   27     97     A    java    0

 

인덱싱을 통해 새로운 열 데이터가 추가된 것을 볼 수 있다. 

 

 

# DataFrame 행 데이터 조회 방법 :: df.loc 프로퍼티 활용

import pandas as pd 

# 실습 데이터 생성
score = { 'name' : ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
          'age': [20, 24, 23, 20, 27],
          'score': [100, 95, 80, 85, 97], 
          'grade': ['A','A','B','B','A'],
          'subject':['python', 'java','python', 'c','java']}
          
score_df = pd.DataFrame(data=score)
print(score_df)

print('\nRows-1')
print(score_df.loc[1])

print('\nRows-3')
print(score_df.loc[3])
  name  age  score grade subject
0  Jessi   20    100     A  python
1   Emma   24     95     A    java
2   Alex   23     80     B  python
3  Jessi   20     85     B       c
4    Tom   27     97     A    java

Rows-1
name       Emma
age          24
score        95
grade         A
subject    java
Name: 1, dtype: object

Rows-3
name       Jessi
age           20
score         85
grade          B
subject        c
Name: 3, dtype: object

 

# DataFrame 다중 행 데이터 조회 방법 :: df.loc 프로퍼티 활용

import pandas as pd 

# 실습 데이터 생성
score = { 'name' : ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
          'age': [20, 24, 23, 20, 27],
          'score': [100, 95, 80, 85, 97], 
          'grade': ['A','A','B','B','A'],
          'subject':['python', 'java','python', 'c','java']}
          
score_df = pd.DataFrame(data=score)
print(score_df)

print('\nMultiple Rows-0,1,3')
print(score_df.loc[[0,1,3]])
 name  age  score grade subject
0  Jessi   20    100     A  python
1   Emma   24     95     A    java
2   Alex   23     80     B  python
3  Jessi   20     85     B       c
4    Tom   27     97     A    java

Multiple Rows-0,1,3
    name  age  score grade subject
0  Jessi   20    100     A  python
1   Emma   24     95     A    java
3  Jessi   20     85     B       c

 

# DataFrame  행과 열 동시에 데이터 조회 방법 :: df.loc 프로퍼티 활용

import pandas as pd 

# 실습 데이터 생성
score = { 'name' : ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
          'age': [20, 24, 23, 20, 27],
          'score': [100, 95, 80, 85, 97], 
          'grade': ['A','A','B','B','A'],
          'subject':['python', 'java','python', 'c','java']}
          
score_df = pd.DataFrame(data=score)
print(score_df)

print('\nRows and Columns')
print(score_df.loc[ [0,1,3], ['name','subject'] ] )
 name  age  score grade subject
0  Jessi   20    100     A  python
1   Emma   24     95     A    java
2   Alex   23     80     B  python
3  Jessi   20     85     B       c
4    Tom   27     97     A    java

Rows and Columns
    name subject
0  Jessi  python
1   Emma    java
3  Jessi       c