Run The Bridge

Pandas 기초(5) 본문

Python/Pandas

Pandas 기초(5)

anfrhrl5555 2020. 9. 3. 18:49
728x90
1
2
3
4
5
6
7
8
9
10
from collections import OrderedDict
import pandas as pd
 
friend_list = OrderedDict([
    ('name', ['John''Jenny''Nate']),
    ('age', [203030]),
    ('job', ['student''developer''teacher'])
])
    
df = pd.DataFrame.from_dict(friend_list)
cs

와 같은 DataFrame을 생성해줍니다.


from_items는 pandas가 버전 업데이트를 하면서 없어졌기때문에 OrderedDict를 써줍니다.

현재 데이터프레임의 모양


# 이름이 Jenny와 Nate만 추출하기

1
df[1:3]
cs


# 적용하기

1
df = df[1:3]
cs




# 불연속적인부분 추출 = df.loc

1
df.loc[[02]]
cs

열을 뽑고싶은데 0번하고 1번만 뽑고싶을 때 사용한다.



# Column에 따라 Row를 선택하기


ex) df에 담긴 내용중에서 age가 25살 이상만 뽑고싶다.

1
df[df.age>25]
cs

또는

1
df.query('age > 25')
cs


으로 쓸 수 있다.



# 이름이 Nate이면서 나이가 25이상인 부분을 추출하기

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



#  Colmun을 Filter하는 법


#  index로 필터링하기

1
df.iloc[:, 0:2# 앞부분은 행, 뒷부분은 열
cs




1
df.iloc[0:20:2]
cs


으로 원하는 부분만 추출이 가능하다.



#  Colmun의 Name으로 필터하기

1
df = pd.read_csv('./friend_list_no_head.csv', header = None, names=['name''age''job'] )
cs


csv파일을 불러와서 DataFrame에 넣는다.



df.filtered = df[['name''age']]

cs


데이터 프레임을 필터하는데,  name과 age만 보고싶다.


또는 df.filter()라는 함수를 사용할 수 있다.


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


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

name, age, job중에서 


colmun에 알파벳 'a'가 들어간 것, axis = 1은 행을 뜻한다. ( 0은 열)



#  정규표현식 regex사용해서 필터하기

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


b로 끝나는 column을 찾아준다.



e로 바꾸면 name과 age도 볼 수 있따.




감사합니다.


Thank you

728x90

'Python > Pandas' 카테고리의 다른 글

Pandas 기초(7)  (0) 2020.09.07
Pandas 기초(6)  (0) 2020.09.03
Pandas 기초(4)  (0) 2020.08.31
Pandas 기초(3)  (0) 2020.08.31
Pandas 기초(2)  (0) 2020.08.31
Comments