[Python] MAU(Monthly Active Users) 계산 방법
·
개발 (Development)/Python
이번 글에서는 텍스트 파일 형태의 사용자 접속 로그를 활용하여 MAU(Monthly Active Users) 를 계산하는 방법을 소개합니다.MAU는 한 달 동안 한 번이라도 활동한 고유 사용자 수를 의미하며, 서비스 이용 현황을 파악하는 데 중요한 지표입니다.1. 데이터 확인저는 다음과 같이 user, ip, event_time 세 컬럼을 가진 로그 파일을 준비했습니다.IP는 보안상 위험이 있을 수 있으므로, 아래 예시에서는 임의의 비공개 대역 IP(192.168.x.x)로 대체하였습니다.useripevent_timeadmin192.168.0.102023-11-08 01:02:17.883guest192.168.0.102023-11-08 01:04:47.914admin192.168.0.112023-11-0..
[Python] Pandas DataFrame에서 조건에 따라 행 삭제 및 특정 데이터 추출하는 방법 정리
·
개발 (Development)/Python
Pandas를 활용해 데이터를 전처리하다 보면, 특정 조건에 따라 행을 삭제하거나 인덱스와 컬럼명을 기준으로 값을 가져오는 일이 자주 발생합니다. 이번 글에서는 DataFrame에서 조건에 맞는 행을 안전하게 삭제하는 방법과 특정 셀의 값을 가져오는 여러 가지 방식을 함께 정리해보겠습니다.DataFrame에서 조건에 맞는 행 삭제하기1. 반복문 없이 조건 필터링으로 삭제 (추천)Pandas에서는 반복문보다 조건 필터링을 사용하는 것이 훨씬 효율적이고 안전합니다.# 예: 'boundary' 컬럼이 빈 문자열("")인 행 제거df = df[df['boundary'] != '']혹은 drop() 메서드를 사용하는 방식도 가능합니다.df.drop(df[df['boundary'] == ''].index, inpl..
[Python] pandas로 DataFrame 비교하여 특정 값 제거하는 방법
·
개발 (Development)/Python
Python의 pandas를 활용하다 보면, 두 개의 DataFrame을 비교하여 한쪽에 포함된 값을 다른 쪽에서 제거해야 하는 상황이 자주 발생합니다. 예를 들어, 이미 처리된 데이터를 제거하거나, 제외 대상 명단을 기반으로 전체 목록을 정리할 때 사용할 수 있습니다.이번 글에서는 이와 같은 상황에서 사용할 수 있는 isin()과 merge() 함수 활용법을 예시와 함께 소개해드리겠습니다.문제 상황 정리두 개의 DataFrame a와 b가 있다고 가정합니다. 이때 a에 포함된 값을 기준으로, 해당 값이 포함된 행을 b에서 제거하고자 합니다.단일 열 기준으로 비교하고 제거하기가장 간단한 경우는 한 개의 열(예: id)을 기준으로 비교하는 방법입니다.import pandas as pd# 예시 데이터a = ..
[Python] Pandas DataFrame에서 값이 저장되지 않는 이유와 해결 방법
·
개발 (Development)/Python
Pandas를 사용하다 보면 DataFrame의 특정 값을 분명히 수정했음에도 불구하고, 실제로 반영되지 않거나 경고 메시지가 출력되는 경우가 있습니다. 본 글에서는 이런 문제가 왜 발생하는지, 어떻게 해결할 수 있는지에 대해 구체적으로 설명드리겠습니다.문제 상황: 분명히 값을 수정했는데 반영되지 않음다음과 같이 조건에 맞는 행을 추출한 후 값을 변경했지만, 원본에는 적용되지 않는 경우가 종종 있습니다.df = original_df[original_df['score'] > 60]df['grade'] = 'Pass'위 코드는 실행 시 SettingWithCopyWarning이라는 경고를 출력하며, 때때로 실제 데이터는 수정되지 않은 채 남아 있게 됩니다. 이 경고는 많은 사용자들이 처음 Pandas를 사용..
[Python] Pandas DataFrame에서 for문을 이용해 특정 컬럼 값 변경하기
·
개발 (Development)/Python
pandas를 사용하다 보면 DataFrame의 각 행을 순회하면서 특정 컬럼의 값을 조건에 따라 변경해야 할 때가 있습니다. 가장 직관적인 방법은 for문을 사용하는 것이며, 본 글에서는 그 기본 사용법을 소개합니다.1. 예시 데이터프레임 생성우선 간단한 예시 데이터프레임을 생성합니다.import pandas as pddf = pd.DataFrame({ 'name': ['Alice', 'Bob', 'Charlie'], 'score': [85, 90, 78]})2. for문으로 특정 컬럼 값 변경이제 for문을 통해 score 컬럼이 80보다 작은 경우, 해당 값을 80으로 변경해보겠습니다.for idx, row in df.iterrows(): if row['score'] 이 코드는 각 ..