Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

Seongho Jang

Pandas 전처리 연습 모음 본문

Data Science Lv.2

Pandas 전처리 연습 모음

seonghojang 2023. 1. 30. 21:36

Groupby 후 상위 n개 행 가져오기

이 용도의 nlargest 와 nsmallest API를 제공하고 있다.
하지만, 가장 빠른 방법은 데이터프레임을 원하는 값으로 정렬한 후에 groupby 하고, head 로 가져오는 것이다.

id, name, total 로 구성된 데이터프레임이 있고, 각 name의 값을 total 로 정렬해 상위 3개만 가져오고 싶다면 아래와 같이 처리하는 것이 빠르다.
    df.sort_values(by='total', ascending=False).groupby('name').head(3)

DataFrame.groupby 문서에 의하면,
sort : boolean, default True
    Sort group keys. Get better performance by turning this off.
    Note this does not influence the order of observations within each group.
    groupby preserves the order of rows within each group.

그룹 내 행의 순서가 유지되기 때문에 안전하다.
그룹 자체의 정렬이 필요하지 않다면, sort 옵션을 끄면 좀 더 빠르다.
    df.sort_values(by='total', ascending=False).groupby('name', sort=False).head(3)

 

 

Pandas: 그룹 내에서 상위 n개 가져오기

발생일: 2018.10.19 키워드: pands, 판다스, groupby, nlargest, nsmallest, sort_values, get n largest value in group 문제: 그룹 내에서 값이 큰 순으로 상위 n개만 가져오려고 한다. 해결책: 이 용도의 nlargest 와 nsmallest

ohgyun.com

 

특정 열에 결측치가 있으면 제거

 

- 특정 컬럼의 행 결측값 제거

df['Column Name'].dropna(axis=0) # axis=0 행 기준 [default]

- 특정 컬럼의 열 결측값 제거

df['Column Name'].dropna(axis=1) # axis=1 열 기준

 

 

특정 행 또는 열을 대상으로 결측값 있으면 제거

- 결측값 들어있는 행 제거 df = df.dropna(axis=0) # axis=0 행 기준 [default] - 결측값 들어있는 열 제거 df = df.dropna(axis=1) # axis=1 열 기준 - 특정 컬럼의 행 결측값 제거 df['Column Name'].dropna(axis=0) # axis=0 행

94ung.tistory.com