본문 바로가기

코딩으로 익히는 Python/Pandas

[Python] 13. pandas DataFrame 추가 수정 삭제 검색 정렬 : dropna(subset=[]),fillna(),isna(),sort_values(),sort_index()예제

728x90
반응형
SMALL
import pandas as pd
import numpy as np

 

data =  {'eng':[10,30,50,70],
         'kor':[20,40,60,80],
         'math':[90,50,20,70]}
df = pd.DataFrame(data, index=['a','b','c','d'] )
df


추가

  • 컬럼 추가
df['my1'] =[1,2,3,4] #컬럼이 있으면 수정, 없으면 추가
df['my2'] = df['kor'] + df['eng']
df

  • 행 추가
data =  {'eng':[10,30,50,70],
         'kor':[20,40,60,80],
         'math':[90,50,20,70]}
df = pd.DataFrame(data, index=['a','b','c','d'] )
df

 

df.loc['e'] =[1,2,3]
df


삭제

 

df.drop( index=['a','c'] )

 

df.drop(columns=['eng','math'])


결측 데이터 처리(대표값, 삭제)

 

data =  {'eng':[10,30,50,70],
         'kor':[20,40,60,80],
         'math':[90,50,20,70]}
df = pd.DataFrame(data, index=['a','b','c','d'] )
df

 

df.loc['b':'c','kor']= np.nan
df.loc['c':'d','math']= np.nan
df

 

df.isna()

 

df.isna().sum() #컬럼별  nan데이터의 갯수 확인
[OUT] :

eng     0
kor     2
math    2
dtype: int64

nan 데이터 특정값 채우기

 

df.fillna(1)

 

df['kor']= df['kor'].fillna(3)
df


nan 삭제

 

df.dropna() # default 행을 기준으로 삭제

 

df.dropna(axis=1) # axis=1 : 열을 기준으로 삭제

 

df.dropna( subset=['math'] ) # math에 결측치 있는 행 삭제


정렬

 

df.sort_values(by='math')

 

df.sort_values(by='math',ascending=False) # math 기준으로 내림차순

 

df.sort_values(by=['kor','eng'],ascending=False)
# kor 기준으로 내림차순
# kor 같으면 eng 기준으로 내림차순

 

df.sort_index() # 인덱스 기준으로 정렬 (default 오름차순)

 

df.loc['c','kor'] = 40 # df의 c행 kor열의 값을 40으로 변경
df


review
- dropna(subset=[]) 형태로 subset에 컬럼명을 넣으면 결측치 있는 행 삭제
728x90
반응형
LIST