[pandas] 정리 (2)

rkqhwkrn·2022년 12월 30일
0

Python

목록 보기
4/13

Pandas

Pandas 기본 활용

Data description

데이터 프레임 생성

arr = np.arange(12).reshape(3,4)  
df = pd.DataFrame(arr, index=range(1,4), columns=['t','e','s','t'])

실행결과

데이터 프레임 정보 확인

df.head(2)
df.tail(2)
df.describe()
df.info()  

실행결과

column 조회

df['e']  
df.e  

실행결과

상대 index를 통한 조회

df.iloc[1]  
df.iloc[:,1]  
df.iloc[:,1:3]  

실행결과

절대 index를 통한 조회

df.loc[1]  
df.loc[:,'e']  

실행결과

Apply map

  • DataFrame.applymap(func, na_action=None)
  • DataFrame의 각 요소에 func 함수를 적용
  • 이때, func는 single value를 받아 single value를 리턴해야 함
df = pd.DataFrame([[1, 2.345], [3.456, 4.567]])

def doubling(x):
	return x*x
    
df.applymap(doubling)
df.apply(lambda x: x*x)  

실행결과

결측치 처리

  • 데이터에는 None 혹은 NaN으로 표기되는 결측값이 존재함
  • Pandas는 이를 처리하기 위한 함수를 제공
df_left = pd.DataFrame({'KEY' : ['K0', 'K1', 'K2', 'K3'],
						'A' : ['A0', 'A1', 'A2', 'A3'],
                        'B' : [0.1, 0.2, 0.3, 0.4]})
                        
df_right = pd.DataFrame({'KEY' : ['K2', 'K3', 'K4', 'K5'],
						'C' : ['C2', 'C3', 'C4', 'C5'],
                        'D' : ['D2', 'D3', 'D4', 'D5']})
                        
df = pd.merge(df_left, df_right, how='outer', on='KEY')  

실행결과

데이터 결측치 값 확인

df.isnull()  
df.notnull()  

실행결과

column별 결측값 확인

df.isnull().sum()  

실행결과

row별 결측값 확인

df.isnull().sum(axis=1)  

실행결과

결측값 처리

특정 값으로 채우기

df.fillna(0)  
df.fillna('missing')  

실행결과

평균으로 채우기

df.fillna(df.mean())  
df.dtypes  

실행결과

Group by

  • 같은 값을 하나로 묶어 통계 혹은 집계 결과를 얻기 위해 활용
  • 묶은 이후 Aggregating function (mean, sum, size, count, std, min, max) 활용 가능
df123 = pd.DataFrame({
	'city':['서울','서울','서울','서울','부산','부산','부산'],
    'fruits':['apple','orange','banana','banana','apple','apple','banana'],
    'price':[100,200,250,300,150,200,400],
    'quantity':[1,2,3,4,5,6,7']
})  

df.groupby('city').mean()  

실행결과

size() vs count()

  • size는 NaN value를 포함하여 세는 함수 (object 개수를 셈) + pandas.Series 리턴
  • count는 NaN value를 빼고 세는 함수 (값의 개수를 셈) + pandas.DataFrame 리턴
df.groupby('KEY').count()
df.groupby('KEY').size()  
df['KEY'].value_counts()  

실행결과

2개 이상의 key를 활용하여 groupby

  • 첫 번째 key로 먼저 그룹화하고 두 번째 key로 그룹화

실행결과

df123.groupby(['city','fruits']).sum()  
df123.groupby(['city','fruits'])['fruits'].count()  

실행결과

unstack()

  • group by의 결과를 보기 좋게 하는 용도로 주로 사용됨
df123.groupby(['city','fruits'])['price'].sum()  
df123.groupby(['city','fruits'])['price'].sum().unstack()  
df123.groupby(['city','fruits'])['price'].sum().reset_index()  

실행결과

0개의 댓글