Pandas에서 그룹화된 데이터의 각 그룹에 대한 첫 번째 값(first)을 계산하려면 groupby.first() 메서드를 사용합니다. 이 메서드는 동일한 키로 묶인 여러 행 중에서 가장 먼저 나타난 값만 반환해 주기 때문에, 중복 데이터를 정리하거나 그룹별 대표값을 추출할 때 매우 유용합니다.
라이브러리 임포트
먼저 필요한 라이브러리를 별칭(alias)과 함께 임포트합니다.
import pandas as pd
DataFrame 생성
이제 3개의 열(Car, Place, Units)을 가진 DataFrame을 생성합니다.
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'BMW', 'Tesla', 'Lexus', 'Tesla'],
"Place": ['Delhi', 'Bangalore', 'Pune', 'Punjab', 'Chandigarh', 'Mumbai'],
"Units": [100, 150, 50, 80, 110, 90]
}
)생성된 DataFrame에는 BMW, Lexus, Tesla 차종이 각각 두 번씩 등장합니다. 여기서 우리는 각 차종(그룹)별로 가장 처음 나타난 행의 값을 추출하고자 합니다.
그룹화 및 first() 적용
먼저 특정 열을 기준으로 DataFrame을 그룹화합니다.
groupDF = dataFrame.groupby("Car")그다음 first() 메서드로 각 그룹의 첫 번째 값을 계산하고, reset_index()로 인덱스를 초기화하여 결과를 보기 좋게 정리합니다.
res = groupDF.first() res = res.reset_index()
전체 예제 코드
지금까지의 과정을 하나로 합친 전체 코드는 다음과 같습니다.
import pandas as pd
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'BMW', 'Tesla', 'Lexus', 'Tesla'],
"Place": ['Delhi', 'Bangalore', 'Pune', 'Punjab', 'Chandigarh', 'Mumbai'],
"Units": [100, 150, 50, 80, 110, 90]
}
)
print("DataFrame ...\n", dataFrame)
# Car 열을 기준으로 DataFrame 그룹화
groupDF = dataFrame.groupby("Car")
# 그룹별 첫 번째 값 계산 후 인덱스 초기화
res = groupDF.first()
res = res.reset_index()
print("\nFirst of group values = \n", res)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 반복되는 값 중 가장 처음 등장한 값, 즉 각 그룹의 첫 번째 값이 표시됩니다.
DataFrame ...
Car Place Units
0 BMW Delhi 100
1 Lexus Bangalore 150
2 BMW Pune 50
3 Tesla Punjab 80
4 Lexus Chandigarh 110
5 Tesla Mumbai 90
First of group values =
Car Place Units
0 BMW Delhi 100
1 Lexus Bangalore 150
2 Tesla Punjab 80정리
groupby.first()는 그룹화된 데이터에서 각 그룹의 첫 번째(최초로 등장한) 값을 손쉽게 추출할 수 있는 메서드입니다. 예제에서 볼 수 있듯이 BMW는 Delhi/100, Lexus는 Bangalore/150, Tesla는 Punjab/80처럼 각 차종이 처음 등장한 시점의 Place와 Units 값이 반환됩니다. 참고로 결측치(NaN)가 포함된 경우 first()는 NaN이 아닌 첫 번째 유효한 값을 반환한다는 점도 함께 기억해 두면 좋습니다.