Aivle school DX track 3기/python

[2주차 데이터 다루기] 데이터 프레임 탐색 , 조회

frmin04 2023. 2. 10. 21:32

데이터  정렬해서 보기

 

데이터 프레임 자료(=df) 있다고 할때,

  • sort_values() :특정 열을 기준으로 정렬 , ascending을 옵션으로 설정해 오름차순/내림차순 설정가능
#복합열('a' , 'b')정렬 , ascending = True(오름차순)
df.sort_values(by = ['a' , 'b'], ascending = True )

#복합열 정렬, a열 내림차순으로 정렬하되 같은 값이면 b열 오름차순으로 정렬
df.sort_values(by = ['a', 'b'], ascending = [False, True])

 

기본 집계(고유값, 합, 평균, 최댓값, 최솟값 등 확인)

  • df['a'].unique() : a열에 어떤 value들이 있는지 배열 형태로 보여줌
  • df['a'].value_counts(): a열에 value와 value 갯수가 시리즈 형태로 출력
  • df['a'].mode(): a열에서 가장 빈도가 높은 value  출력
# a,b 합계 조회
df[['a', 'b']].sum()
#a,b 평균 조회
df[['a', 'b']].mean()

 

데이터 조회 (특정열, 열 범위 , 조건)

df.loc[ row, column ] 이 기본 형태

 

  • df[ column ] : 행 부분 입력이 필요가 없을때(특정 열 출력)
  • df.loc[ row ] : 열 부분 입력 x , 특정 조건을 가진 값 모두 출력  
# d열 값이 6.0보다 큰 행 조회
#df.loc[df['d'] > 6.0, :]
df.loc[df['d'] > 6.0]

#여러 조건 연결 (d > 6.0 and day == mon)
#df.loc[ (df['d'] > 6.0) & (df['day'] == 'mon'), : ]
df.loc[ (df['d'] > 6.0) & (df['day'] == 'mon') ]

 

여러조건을 편리하게!: isin(), between()

  • isin([값1, 값2 , ... ])
  • between( 값1, 값2 ) : 값1 ~값까지 범위안의 데이터만 조회
# day가 mon 또는 thur 또는 sat일때
#df.loc[( df['day'] == 'mon') | ( df['day'] == 'thur') |( df['day'] == 'sat')] 와 동일
df.loc[df['day'].isin(['mon', 'thur', 'sat' ])]

# 범위 지정 ( 1 <= b <= 3)
df.loc[ df['b'].between(1,3) ]

 

☆ 조건 조회시 열 정보가 생략되면 loc를 생략할 수 있지만 생략하지 않도록 하자!!( 특정 열 조회랑 헷갈릴 수 있음)