1. Pandas 심화 간단 정리
데이터 프레임 정렬
1) 인덱스 값 기준으로 정렬하기
axis=0 : 행 인덱스 기준 정렬(default 오름차순)
df = df.sort_index(axis =0)
axis=1 : 열 인덱스 기준 내림차순 정렬
df.sort_index(axis=1, ascending= False) # ascending -> True = 오름차순, False = 내림차순
2) column 값 기준 정렬
df.sort_values(‘칼럼 이름’ , ascending = true)
3) 컬럼 2가지도 오름, 내림차순 정렬 가능
df.sort_values([‘먼저 바꿀 열’, ascending = [True, False])
<데이터 프레임 분석용 함수 예시>
집계 함수 - count
count 메서드 활용하여 데이터 개수 확인 가능
data = {
‘korean’ : [50, 60, 70],
‘math’ : [10,np.nan ,40]
}
df= df.DataFrame(data, index = [‘a’, ’b’, ’c’])
df.count(axis =0) #열 기준
===============
Korean 3
math 2
df.count(axis =1) #행 기준
===============
a 2
b 1
c 2
==================================
df.max() 70.0 40.0
df.min() 50.0 10.0
==================================
df.sum() 180.0 50.0
df.mean() 60.0 25.0
df.sum(axis =1)
df.mean(axis=1, skipna = False)
Nan을 반환하겠다 -> False
합계 평균
a 60.0 30.0
b 60.0 Nan
c 110.0 55.0
하면 nan값 때문에 계산이 번거로워지는데 fillna를 사용하면 nan값이 존재하는 column 평균을 구하여 nan 값을 대체하게 된다.
B_avg =df[‘math’]. mean()
print(B_avg) #25. 0
df[‘math’] = df[‘math’]. fillna(B_avg) #NAN값 대체
df.mean(axis=1, skipna = False) #평균
df원본 nan값 대체 평균
korean math korean math
a 50 10.0 50 10.0 30.0
b 60 NAN 60 25.0 42.5
c 70 40.0 70 40.0 55.0
그룹으로 묶기
간단한 집계를 넘어서서 조건부로 집계하고 싶을 때 사용한다
df = pd.DataFrame({
‘data1’ : range(6),
‘data2’ : [4, 4, 6, 0, 6, 1],
‘key’ : [‘A’, ’B’, ’C’, ’A’, ’B’, ’C’]
})
df.groupby(‘key’). sum() ->#1번
df.groupby([‘key’, ‘data1’]). sum() ->#2번
#df #1번 #2번
data1 data2 key key key data1
0 0 4 A A 3 4 A 0 4
1 1 4 B B 5 10 3 0
2 2 6 C C 7 7 B 1 4
3 3 0 A 4 6
4 4 6 B C 2 6
5 5 1 C 4 1
< aggregate -> groupby를 통해서 집계를 한 번에 계산하는 방법 >
df.groupby(‘key’). aggregate([min, np.median, max])
df.groupby(‘key’). aggregate({‘data1’: ‘min’, ‘data2’: np.sum})
< filter -> groupby를 통해 그룹 속성을 기준으로 데이터 필터링 >
def filter_by_mean(x):
return x[‘data2’]. mean() >3
df.groupby(‘key’). mean()
df.groupby(‘key’). filter(filter_by_mean)
< apply, lambda -> groupby를 통해 묶인 데이터에 함수 적용 >
df.groupby(‘key’). apply(lambda x: x.max() - x.min())
< get_group -> groupby로 묶인 데이터에서 Key 값으로 데이터를 가져오는 방법 >
df = pd.read_csv(“./univ.csv”)
df.head() #상위 5개 데이터
df.groupby(“시도”). get_group(“충남”) #데이터 추출
len(df.groupby(“시도”). get_group(“충남”))
'Python > Alice Python Basic' 카테고리의 다른 글
Python 기초 프로그래밍의 간단 정리6 (1) | 2021.07.11 |
---|---|
Python 기초 프로그래밍의 간단 정리4 (0) | 2021.07.08 |
Python 기초 프로그래밍의 간단 정리3 (0) | 2021.07.07 |
Python 기초 프로그래밍의 간단 정리2 (0) | 2021.07.07 |
Python 기초 프로그래밍의 간단 정리1 (0) | 2021.07.07 |