데이터 분석을 하기 위해서 이 함수들을 잘 알아두는 것은 중요하다.
가장 많이 팔린 제품은 뭔가요? 그런데 가장 말린 제품의 지역 5군데를 추출하면 뭐가 나오죠? 100개 이상 팔린 제품군으로는 뭐가 있죠? 등등의 질문에 답을 찾기 위해 코드 짤 때 자주 쓸 수 밖에 없다.
1. value_counts()
def value_counts(subset: (Sequence[Hashable] | None)=None, normalize:
bool=False, sort: bool=True, ascending: bool=False, dropna: bool=True)
value_counts는 series 형태로 값을 반환해준다. 표와 같은 데이터 프레임 형식이 아니다는 게 차이점.
이런 식으로 볼 수 있다. 이건 각 주마다 나온 반복되는 행 값을 계산한 것이라고 생각하면 된다.
unique()와 nunique()와 함께 참고하면 좋다. unique()는 중복되지 않는 각 행의 값을 추출하고 중복되지 않는 값의 총 갯수는 nunique()로 확인 할 수 있다.
총 51개 주가 있으며 그 51개 주의 이름이 뭔지는 unique()로 확인할 수 있다. 그런데 그 주마다 각 갯수는 value_counts()로 셀 수 있다.
덧붙이면 count_values()는 데이터 프레임 형식이 아니라 series 형태이다. 표 형식이 아니라는 점에 주의!
즉. df는 표 형태로 보여지는 데이터 프레임인데 이걸 통째로 count_values()로 해주면 에러난다.
=> 이런 식으로 알고자 하는 series값을 추출해 준 다음 계산해 주어야 한다.
참고로 데이터 프레임 형태는 df[['State']] 등으로 [ ]가 더 붙는다는 점
2.sort_values()
def sort_values(by, axis: Axis=0, ascending=True,
inplace: bool=False, kind: str='quicksort',
na_position: str='last', ignore_index: bool=False, key: ValueKeyFunc=None)
sort_values는 특정 열에 따라서 오름차순, 내림차순으로 보고 싶을 때 자주 쓰는 코드이다. 저 파라미터 값 중에 ascending이 true로 되어 있다는 것에 주목. 내림차순으로 보고 싶을 때는 ascending = False 로 해야 한다.
inplace는 기본적으로 False로 되어 있는데 만약 해당 정렬을 기본적으로 반영하고 싶다면 inplace=True로 해주면 된다.
예를 들어 2010년도에 가장 많이 팔린 제품 군을 내림차순으로 보고 싶다! 하면 다음과 같은 코드를 쳐야 한다.
df.sort_values('2010Census', ascending=False).head(5)
내림차순으로 정리해서 head(5)개로 뽑았다.
이 코드 정말정말 많이 쓰게 될 것이다
3. groupby()
def groupby(by=None, axis: Axis=0, level: (Level | None)=None,
as_index: bool=True, sort: bool=True, group_keys: bool=True,
squeeze: (bool | lib.NoDefault)=no_default, observed: bool=False,
dropna: bool=True) ->DataFrameGroupBy
groupby와 value_counts()를 정말 많이 헷갈려했다. 초반에 배울 때도 그렇고 분석할 때도 그렇고, 그런데 groupby는 데이터프레임 형태로 다룬다는 게 차이점이다.
groupby() -> DataFrame 형태, value_counts() -> serial 형태
라고 생각하면 된다. 그래서 groupby()를 그냥 쓰면 객체로 나온다.
알고 싶은 부분을 자세하게 써 주어야 한다.
mean(), count(), max(), min(), std() 등. 차례로 평균, 갯수, 최대값, 최소값, 표준편차 값 구하기
그래서 맨 위에 count_values()로 시리즈 형태로 구했던 부분을 groupby로 판다스 데이터 프레임 형태로 구한다면 다음과 같다
값는 동일하게 구해진다.
'Python' 카테고리의 다른 글
[데이터 시각화] matplotlib, 그래프 범례 밖으로 넣기, 산점도 색깔 넣기, 그림크기 변경figsize (0) | 2022.04.19 |
---|---|
Pandas) 특정 값, 이름이 있는 행 갯수 찾기, 함수 적용하기, lambda 값 (0) | 2022.04.17 |
pandas) read_csv, read_excel. 데이터 불러오기, 파라미터값들 (0) | 2022.04.17 |
Colab 에서 현재 경로 설정, google Drive 연결, 특정 위치의 데이터 가지고 올 때 (0) | 2022.04.17 |
Colab font 변경. 코랩 쓸 때 폰트체 변경하기 (0) | 2022.04.15 |