Python Pandas에서 열의 고유 값 찾고 정렬하기
Python Pandas에서 열의 고유 값 찾고 정렬하기
- Pandas 데이터프레임에서 특정 열의 고유 값을 찾아 정렬합니다.
사용 라이브러리:
- Python
- Pandas
단계별 설명:
- 데이터프레임 불러오기:
import pandas as pd
df = pd.read_csv("[파일 경로]", index_col=[0])
- 특정 열 선택:
column_name = "[열 이름]"
column = df[column_name]
- 고유 값 추출:
unique_values = column.unique()
sorted_values = sorted(unique_values)
- 정렬된 고유 값 출력:
print(sorted_values)
예시:
import pandas as pd
df = pd.read_csv("[파일 경로]", index_col=[0])
column_name = "Country"
column = df[column_name]
unique_values = column.unique()
sorted_values = sorted(unique_values)
print(sorted_values)
결과:
['Afghanistan', 'Albania', 'Algeria', ..., 'Zimbabwe']
참고:
unique()
함수는 중복 값을 제거하고 고유 값만 반환합니다.sorted()
함수는 리스트를 정렬합니다.
추가 기능:
sort_values()
함수를 사용하여 데이터프레임 자체를 열의 고유 값 기준으로 정렬할 수 있습니다.
df.sort_values(by=column_name, inplace=True)
nlargest()
또는nsmallest()
함수를 사용하여 고유 값 중 상위 또는 하위 n개를 선택할 수 있습니다.
n = 5
largest_values = df[column_name].nlargest(n)
smallest_values = df[column_name].nsmallest(n)
문제 해결:
- 데이터 분석에서 특정 열의 고유 값을 찾는 것은 데이터 분포를 파악하거나 데이터를 그룹화하는 데 유용합니다.
- 데이터 정렬은 데이터를 시각화하거나 분석하기 전에 필요한 전처리 단계입니다.
예제 코드
import pandas as pd
# 데이터프레임 불러오기
df = pd.read_csv("[파일 경로]", index_col=[0])
# 특정 열 선택
column_name = "[열 이름]"
column = df[column_name]
# 고유 값 추출
unique_values = column.unique()
# 고유 값 정렬
sorted_values = sorted(unique_values)
# 정렬된 고유 값 출력
print(sorted_values)
사용 예시:
# 파일 경로 설정
file_path = "data.csv"
# 데이터프레임 불러오기
df = pd.read_csv(file_path, index_col=[0])
# 특정 열 선택
column_name = "Country"
# 고유 값 찾고 정렬
unique_values = df[column_name].unique()
sorted_values = sorted(unique_values)
# 결과 출력
print(sorted_values)
['Afghanistan', 'Albania', 'Algeria', ..., 'Zimbabwe']
- 위 코드는 예시이며, 실제 코드는 사용자의 환경에 맞게 변경해야 합니다.
file_path
변수에 데이터 파일의 경로를 설정해야 합니다.column_name
변수에 고유 값을 찾고 정렬할 열 이름을 설정해야 합니다.
df.sort_values(by=column_name, inplace=True)
n = 5
largest_values = df[column_name].nlargest(n)
smallest_values = df[column_name].nsmallest(n)
대체 방법
방법 1: unique()
및 sort()
함수 사용
# 고유 값 추출 및 정렬
unique_values = sorted(df[column_name].unique())
# 결과 출력
print(unique_values)
방법 2: Series.sort_values()
함수 사용
# 고유 값 추출 및 정렬
sorted_values = df[column_name].sort_values().unique()
# 결과 출력
print(sorted_values)
방법 3: DataFrame.groupby()
및 nunique()
함수 사용
# 고유 값 개수 계산 및 정렬
unique_values = df.groupby(column_name).size().sort_values(ascending=False).index.to_list()
# 결과 출력
print(unique_values)
방법 4: DataFrame.agg()
함수 사용
# 고유 값 개수 계산 및 정렬
unique_values = df[column_name].agg(pd.Series.nunique).sort_values(ascending=False).index.to_list()
# 결과 출력
print(unique_values)
각 방법의 장단점:
방법 | 장점 | 단점 |
---|---|---|
unique() 및 sort() | 간단하고 직관적 | 정렬이 불필요한 경우 비효율적 |
Series.sort_values() | 간단하고 효율적 | unique() 함수가 제공하는 추가 기능 없음 |
DataFrame.groupby() 및 nunique() | 고유 값 개수도 함께 제공 | 다소 복잡 |
DataFrame.agg() | DataFrame.groupby() 보다 간결 | DataFrame.groupby() 보다 느릴 수 있음 |
사용 사례:
- 방법 1: 간단하고 빠른 방법이 필요할 때
- 방법 2: 고유 값 개수도 함께 필요할 때
- 방법 3: 데이터프레임에 여러 열이 있고 특정 열의 고유 값만 필요할 때
- 방법 4: 코드를 간결하게 작성하고 싶을 때
python pandas sorting