IT

[Pandas] 데이터 필터, 필터링 사용방법 및 예제

feelninefree 2024. 11. 22. 14:14
반응형

pandas에서 DataFrame을 필터링하는 방법은 다양한 조건을 사용하여 원하는 데이터를 추출하는 것입니다. 여기 몇 가지 일반적인 방법을 예로 들어 설명하겠습니다.


1. 특정 값 기반 필터링

import pandas as pd

# 예제 데이터
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [24, 27, 22, 32],
        'city': ['Seoul', 'Busan', 'Seoul', 'Incheon']}
df = pd.DataFrame(data)

# 특정 값 필터링: 'city'가 'Seoul'인 데이터만 추출
filtered_df = df[df['city'] == 'Seoul']
print(filtered_df)

2. 여러 조건을 사용한 필터링

조건을 조합할 때는 &(and), |(or) 연산자를 사용하며, 조건은 각각 괄호로 묶어야 합니다.

# 'city'가 'Seoul'이고, 'age'가 25세 이상인 데이터
filtered_df = df[(df['city'] == 'Seoul') & (df['age'] >= 25)]
print(filtered_df)

3. isin()을 사용한 여러 값 필터링

컬럼 값이 여러 값 중 하나에 속하는 데이터를 필터링할 때 사용합니다.

# 'city'가 'Seoul' 또는 'Busan'인 데이터
filtered_df = df[df['city'].isin(['Seoul', 'Busan'])]
print(filtered_df)

4. str 메서드를 활용한 텍스트 필터링

문자열 컬럼에 대해 특정 패턴이나 조건을 기반으로 필터링할 수 있습니다.

# 'city' 컬럼에 'eo'가 포함된 데이터
filtered_df = df[df['city'].str.contains('eo')]
print(filtered_df)

5. 날짜 기반 필터링

날짜 필터링은 datetime 타입으로 변환 후 수행하는 것이 편리합니다.

# 예제 데이터
data = {'date': ['2024-01-01', '2024-02-15', '2024-03-10'],
        'value': [10, 20, 30]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])  # datetime 형식으로 변환

# 특정 날짜 이후의 데이터
filtered_df = df[df['date'] > '2024-02-01']
print(filtered_df)

6. query 메서드로 필터링

SQL과 비슷한 방식으로 조건을 쓸 수 있습니다.

# 'age'가 25 이상이고 'city'가 'Seoul'인 데이터
filtered_df = df.query("age >= 25 and city == 'Seoul'")
print(filtered_df)

필터링할 조건에 따라 위 방법들을 적절히 조합해서 사용하면 됩니다.

 


 이 게시글은 chatgpt-4o 의 도움을 받아 작성되었습니다.

반응형