1. 데이터 프레임 생성

[소스]

import pandas as pd
from collections import OrderedDict #컬럼 순서를 지정하면서 데이터 프레임을 구성
friend_ordered_dict = OrderedDict(
    [
        ('name', ['John', 'Nate', 'Kim']),
        ('age', [25, 30, 35]),
        ('job', ['student', 'teacher', 'mother']),
    ]
)
df = pd.DataFrame.from_dict(friend_ordered_dict)

[결과]

2. 행 조회하기

 

2-1. 첫번째, 두번째 인덱스만 조회할 경우

[소스]

df[1:3]

 

[결과]

인덱스 1부터 끝까지 조회하고 싶을때는 "df[1:]"과 같은 방법으로 사용하면 됩니다.

 

2-2. 인덱스 0번과 2번만 조회 할 경우

[소스]

df.loc[[0,2]]

 

[결과]

이처럼 인덱스를 따로 지정하여 필터링 할 수도 있습니다.

 

3. 열 조회하기

3-1. 컬럼명을 이용해 조회할 경우(두 가지 방법)

[소스 1]

df[['name','age']]

[결과 1]

 

[소스 2]

df.filter(items=['age','job'])

[결과 2]

3-2. 컬럼명에 'a'가 포함된 열만 추출할 경우

[소스]

df.filter(like ='a', axis=1)

 

[결과]

컬럼명 "job"의 경우 'a'가 포함되어 있지 않으므로 출력되지 않고 "name", "age" 컬럼만 선택해서 출력된 것을 확인할 수 있습니다. 그리고 axis=1의 의미는 열을 뜻합니다.

 

3-3. 정규표현식을 이용하여 컬럼명이 'b'로 끝나는 열만 추출할 경우

[소스]

df.filter(regex='b$', axis=1)

 

[결과]

3-4. 범위를 이용하여 열 값조회

[소스 1]

df[df.age > 25]

 

[결과 1]

[소스 2]

df.query('age > 25')

[결과]

 

4. 행과 열 동시 조회하기

4-1.  이름이 Nate이고 age가 25보다 큰 값의 행을 출력할 경우

[소스]

df[ ( df.age > 25 ) & ( df.name == 'Nate' ) ] 

 

[결과]

 

4-2. 모든 행을 출력하되 열 인덱스가 0 ~ 1열 까지인 데이터를 출력하고자 할 경우

[소스]

df.iloc[:,0:2]

 

[결과]

 

4-3. 행인덱스 0~1, 열인덱스 0~1까지 출력할 경우

[소스]

df.iloc[0:2,0:2]

 

[결과]

 

4-4. 인덱스에 라벨('age'속성)을 이용하여 값 조회

[소스]

df.loc[0, 'age']

[결과]

4-5 필터링 하여 값 수정

[소스]

df.iloc[1, 2] = 'dev'

 

값을 수정할 경우 "df = df.log[0, 'age'] = 변경할 값" 을 입력하면 값을 수정할 수 있습니다.

또한 위와 같은 방법으로도 수정할 수 있습니다.

" df.iloc[1, 'job'] = 'dev' "와 같은 방법은 불가능 합니다. iloc는 int형으로만 검색할 수 있습니다.

 

[결과]

+ Recent posts