본문 바로가기
Python

[파이썬] 판다스: 조건과 정렬

by eyoo 2022. 5. 2.

데이터프레임에서 조건에 만족하는 데이터들만 가져올수 있다.

 

 

경력이 3년 이상인 사람의 데이터를 가져오고 싶을때

 

먼저 조건문을 적용시킨후:

 

in:

df['Years of Experience'] >= 3

out:

0     True
1     True
2     True
3    False
Name: Years of Experience, dtype: bool

 

 

loc함수를 이용하여 데이터를 가져온다.

 

in:

df.loc[df['Years of Experience'] >= 3,]

out:

# 컬럼에 해당되는 파라미터 자리를 비워두면 모든 컬럼이 포함된 데이터를 가져오게 된다.

 

 

경력이 3년이상인 사람의 이름과 시급정보를 가져오려고 한다면

 

in:

df.loc[df['Years of Experience'] >= 3,['Employee Name','Salary [$/h]']]

out:

# 컬럼을 대괄호로 감싸서 입력하면 된다.

 

 

경력이 3년 이상이고 8년 이하인 사람의 데이터를 가져오려 할때

 

in:

df.loc[(df['Years of Experience'] >= 3) & (df['Years of Experience'] <= 8),]

out:

# 데이터 프레임에서는 and 대신 '&'가 사용된다.

# 조건들을 괄호로 감싸주는것에 유의하자.

# 'or'을 사용하고싶으면 ' | '을 사용하면 된다.

 

 

시급이 가장 높은사람을 보고싶다면

 

in:

df.loc[df['Salary [$/h]'] == df['Salary [$/h]'].max() , 'Employee Name' ]

out:

2    Mitch
Name: Employee Name, dtype: object

# '=='와 max함수를 활용하면된다.

 

 

데이터프레임에서 문자열에 서 쓰이는 함수를 활용하고 싶을때

 

사원 이름의 길이 데이터를 포함한 컬럼을 새로 만드려고 할때

 

in:

df ['Name length'] = df['Employee Name'].str.len()
df

out:

# 해당 열 뒤에 str을 사용하고 문자열 함수를 입력하면된다.

# str과 contains 함수를 사용하여 특정 단어가 포함된 데이터를 찾을수도 있다.

 

 

apply 함수로 원하는 함수를 데이터프레임에 적용할수 있다.

 

시급이 30이상이면 A그룹, 시급이 30미만이면 B그룹이라 하고
새로운 group 컬럼을 만들어 A나 B로 저장한다면

 

in:

def grouping(salray):
    if salray >= 30:
        return 'A'
    else:
        return 'B'
        
df['group'] = df['Salary [$/h]'].apply(grouping)
df

out:

 

 

sort_values함수로 데이터프레임을 정렬할수있다.

 

in:

df.sort_values('Years of Experience')

out:

# 기본값은 오름차순이다.

# 내림차순으로 설정하고싶으면 마지막 파라미터에 ascending = False를 설정해주면 된다.

 

 

정렬 기준을 두개 이상으로 만들수 있다.

 

in:

df.sort_values(['Employee Name','Years of Experience'],ascending=[ False,True])

out:

# 두개 이상이면 대괄호로 묶어주면된다.

 

 

 

 

 

댓글