DataFrame 열에서 값 검색: 포괄적인 가이드
Published on
데이터 과학자로서, 가장 일반적으로 진행하는 일 중 하나는 큰 데이터셋에서 특정 값을 검색하는 것입니다. 특히, Pandas DataFrame에서의 검색 작업은 데이터 조작, 변환 및 분석에 매우 강력한 도구입니다. 그러나 특정 열에서 효율적으로 값을 검색하는 방법을 알지 못하면 불필요하게 시간과 노력을 낭비할 수 있습니다. 이 가이드에서는 Pandas를 사용하여 DataFrame 열에서 값을 검색하는 다양한 기술을 실제 예제와 코드 조각과 함께 살펴보겠습니다.
파이썬 판다스 데이터프레임으로 더 이상 코딩하지 않고 데이터 시각화를 쉽고 빠루하게 시작하세요.
PyGWalker는 시각화 기능이 포함 된 파이썬 판다스 데이터 분석 라이브러리입니다. PyGWalker (opens in a new tab)는 당신의 판다스 데이터프레임을 Tableau 스타일의 대화형 인터페이스로 변환하여 데이터 분석 및 시각화 워크 플로우를 간편하게 만들어 줍니다.
Pandas DataFrame
DataFrame 열에서 값을 검색하기 전에, 먼저 Pandas DataFrame이란 무엇인지 알아보겠습니다. Pandas DataFrame은 라벨링 된 축 (행 및 열)을 가진 크기 조정 가능한 이차원 표 형태의 데이터 구조입니다. 스프레드시트나 SQL 테이블과 유사하며, Python에서 데이터 분석 및 조작에 가장 많이 사용되는 데이터 구조 중 하나입니다. 행과 열은 각각 고유한 라벨을 가지며, DataFrame에서 개별 요소에 액세스하는 데 사용할 수 있습니다.
다음은 사전을 사용하여 Pandas DataFrame을 생성하는 예시입니다:
import pandas as pd
data = {'Name': ['John', 'Emma', 'Peter', 'David', 'Sophie'],
'Age': [27, 21, 24, 30, 29],
'Gender': ['Male', 'Female', 'Male', 'Male', 'Female'],
'City': ['New York', 'London', 'Paris', 'Tokyo', 'Rio de Janeiro']}
df = pd.DataFrame(data)
print(df)
출력:
Name Age Gender City
0 John 27 Male New York
1 Emma 21 Female London
2 Peter 24 Male Paris
3 David 30 Male Tokyo
4 Sophie 29 Female Rio de Janeiro
이 예제에서는 'Name', 'Age', 'Gender', 'City' 네 개의 열을 가진 Pandas DataFrame을 생성했습니다. 행은 0부터 시작하는 정수로 라벨이 지정되어 있습니다. 인덱싱, 슬라이싱, 부울 인덱싱 등 다양한 방법을 사용하여 개별 열과 행에 액세스할 수 있습니다.
DataFrame 열에서 값 검색
이제 위의 Pandas DataFrame에서 'Age' 열에서 특정 값을 검색하려고 한다고 가정해 봅시다. 다음 코드를 사용하여 이 작업을 수행할 수 있습니다:
value = 27
result = df[df['Age'] == value]
``````python
print(result)
출력:
이름 나이 성별 도시
0 John 27 남성 뉴욕
이 예제에서는 'value'라는 변수에 27이라는 값을 할당했습니다. 그 후, 불린 인덱싱을 사용하여 'Age' 열이 27과 일치하는 행만 선택합니다. 마지막으로, 'Age' 열이 27인 데이터프레임을 출력합니다.
그 외에도 >
, <
, >=
, <=
, !=
와 같은 다른 불리언 연산자를 사용하여 데이터프레임 열에서 값을 검색할 수 있습니다. 예를 들어, 'Age' 열이 25보다 크거나 같은 모든 행을 검색하려면 다음 코드를 사용할 수 있습니다.
result = df[df['Age'] >= 25]
print(result)
출력:
이름 나이 성별 도시
0 John 27 남성 뉴욕
3 David 30 남성 도쿄
4 Sophie 29 여성 리우데자네이루
이 코드는 'Age' 열이 25보다 크거나 같은 행만 선택합니다.
데이터프레임 열에서 여러 값들을 검색하기 위해 'isin()' 메서드를 사용할 수도 있습니다. 예를 들어, 'City' 열이 '파리' 또는 '도쿄'와 일치하는 모든 행을 검색하려면 다음 코드를 사용할 수 있습니다:
cities = ['파리', '도쿄']
result = df[df['City'].isin(cities)]
print(result)
출력:
이름 나이 성별 도시
2 Peter 24 남성 파리
3 David 30 남성 도쿄
이 코드는 'City' 열이 '파리' 또는 '도쿄'와 일치하는 행만 선택합니다.
불리언 검색 방법에서는 원래의 데이터프레임이 수정되지 않습니다. 대신, 검색 조건을 충족하는 데이터프레임의 복사본이 생성됩니다.
검색 성능 향상
대용량 데이터셋에서 데이터프레임 열에서 값을 검색하는 작업은 시간이 많이 소요될 수 있습니다. 검색 성능을 향상시키기 위해, 'loc[]' 메서드를 사용할 수 있습니다. 이 방법을 사용하면 전체 데이터프레임을 검색하는 대신, 검색 조건을 충족하는 행에만 집중할 수 있습니다.
예를 들어, 백만 개의 행이 있는 대규모 데이터프레임에서 'Age' 열에서 값 27을 검색하려면 다음 코드를 사용할 수 있습니다:
value = 27
```결과 = df.loc[df['나이'] == 값]
print(결과)
출력:
이름 나이 성별 도시
0 John 27 남성 뉴욕
이 예제에서는 'Age' 열이 27인 행만 검색하기 위해 'loc []' 메서드를 사용했습니다. 이 방법은 검색 기준을 충족하는 행에만 작동하기 때문에 전체 DataFrame에 대해 불리언 인덱싱을 사용하는 것보다 훨씬 빠릅니다.
검색 성능을 개선하는 또 다른 방법은 관심 있는 열을 기준으로 DataFrame을 정렬한 다음 값 검색에 대해 이진 검색을 사용하는 것입니다. 'Age' 열을 기준으로 DataFrame을 정렬하려면 다음 코드를 사용할 수 있습니다.
df.sort_values(by='Age', inplace=True)
print(df)
출력:
이름 나이 성별 도시
1 Emma 21 여성 런던
2 Peter 24 남성 파리
0 John 27 남성 뉴욕
4 Sophie 29 여성 리우데자네이루
3 David 30 남성 도쿄
이 코드는 'Age' 열을 오름차순으로 기준으로 DataFrame을 정렬합니다. 그런 다음 'searchsorted ()' 메서드를 사용하여 'Age' 열에서 값을 이진 검색하여 값을 찾을 수 있습니다. 다음은 예입니다.
값 = 27
결과 = df.iloc[df['Age'].searchsorted(값)]
print(결과)
출력:
이름 Emma
나이 21
성별 여성
도시 런던
Name: 1, dtype: object
이 예에서는 'searchsorted ()' 메서드를 사용하여 'Age' 열에서 값 27을 찾았습니다. 이 메서드는 해당 열에 값이 있으면 해당 값의 인덱스를 반환하거나 그렇지 않으면 다음으로 높은 값을 인덱스로 반환합니다. 그런 다음 'iloc []' 메서드를 사용하여 지정된 인덱스의 행을 가져 왔습니다.
결론
DataFrame 열에서 값 검색은 데이터 분석 및 조작에서 흔한 작업 중 하나로 Pandas DataFrame에서 특히 중요합니다. 이 가이드에서는 Pandas를 사용하여 DataFrame 열에서 값 검색하는 여러 기술을 실제 예제와 코드 조각으로 살펴보았습니다. 또한 'loc []' 메서드를 사용하거나 정렬된 DataFrame에서 이진 검색을 수행하는 등 검색 성능을 개선하는 방법에 대해 논의했습니다. 이러한 기술을 사용하면 쉽게, 정확하게 및 빠르게 필요한 데이터를 추출할 수 있습니다.
링크
- Pandas DataFrame을 Python 리스트로 변환하는 방법
- Pandas DataFrame을 인덱스로 정렬하는 방법- Pandas Series를 DataFrame으로 변환하는 방법
- PySpark Dataframe에서 열 이름 목록을 만드는 방법
- Python에서 Pandas DataFrame 추가하는 방법
- Pandas DataFrame에서 열 이름 변경하는 방법
자주 묻는 질문
-
DataFrame의 특정 열에서 특정 값을 검색하는 방법은 무엇인가요?
DataFrame의 특정 열에서 특정 값을 검색하려면 불리언 인덱싱을 사용합니다. 열의 값과 원하는 값과 비교하는 불리언 조건을 생성하고 이 조건을 사용하여 DataFrame을 필터링합니다. 결과로 반환되는 DataFrame에는 열의 값이 원하는 값과 일치하는 행만 포함됩니다.
-
Pandas에서 특정 열에서 특정 값을 가져오는 방법은 무엇인가요?
Pandas에서 특정 열에서 특정 값을 가져오려면 인덱스 연산자
[]
를 사용합니다. 대괄호 안에 열 이름을 지정하고 행 인덱스를 지정하여 해당 위치의 값을 가져옵니다. 반환되는 값은 해당 열의 개별 값입니다. -
DataFrame에서 단일 값 하나를 가져오는 방법은 무엇인가요?
DataFrame에서 단일 값 하나를 가져오려면
at
또는iat
과 같은 액세서를 사용할 수 있습니다.at
액세서를 사용하면 행 레이블과 열 이름을 지정하여 값을 액세스할 수 있습니다. 반면에iat
액세서를 사용하면 행 인덱스와 열 인덱스를 지정하여 값을 액세스할 수 있습니다. 이러한 액세서를 사용하면 DataFrame에서 단일 값을 빠르고 효율적으로 가져올 수 있습니다.