본문 바로가기

판다스/판다스 팁50

[pandas] 그룹별로 오름차순과 내림차순을 다르게 설정해 순위 매기기 판다스에서 그룹별로 오름차순과 내림차순을 다르게 설정해 순위를 매기는 방법 데이터 분석 과정에서 그룹별로 상이한 순위 적용 방식을 요구하는 경우가 자주 발생합니다. 특히 주식이나 선물과 같은 금융 포지션을 분석할 때, 포지션에 따라 오름차순과 내림차순을 다르게 설정하여 그룹내 순위를 매기는 것이 필요합니다. 목표이해를 돕기 위해 예시 데이터 프레임으로 설명하겠습니다.import pandas as pd# 예시 데이터 프레임 생성data = {'position': [1, 1, 1, 0, 0, 0], 'value': [10, 20, 30, 40, 50, 60]}df = pd.DataFrame(data) df에서 우리는 position 열을 기준으로 각 그룹의 순위를 서로 다른 방향으로 적용하고자.. 2024. 10. 24.
[pandas] 집계 함수 판다스의 집계 함수 집계 함수란? 집계 함수(aggregation function)는 데이터를 군집으로 묶어 요약된 통계 정보를 제공하는 함수입니다. 주로 사용하는 집계 함수로는 합(sum), 평균(mean), 표준편차(std), 최댓값(max), 최솟값(min), 중간값(median) 등이 있으며, 이러한 함수들은 데이터의 특성을 파악하는 데 유용합니다.  판다스의 집계 함수 판다스에서 제공하는 다양한 집계 함수는 아래와 같습니다.     함수기능함수기능sum전체 합cumsum누적 합prod전체 곱cumprod누적 곱max최댓값cummax누적 최대min최솟값cummin누적 최소count개수cumcount누적 개수(그룹화)mean평균first첫 번째 값(그룹화)std표준편차last마지막 값(그룹화)var.. 2024. 10. 21.
[pandas] 수학적 연산 데이터 프레임에서 수학적 연산을 수행하는 방법 판다스에서의 수학적 연산 데이터 분석을 할 때, 다양한 수학적 연산이 필요할 때가 많습니다. 판다스는 기본적으로 이러한 수학 연산을 직접 제공하지 않지만, 파이썬의 강력한 수학 라이브러리인 넘파이(NumPy)를 활용하면 이러한 문제를 쉽게 해결할 수 있습니다. 특히, 판다스는 넘파이 기반으로 제작된 라이브러리이기 때문에, 넘파이의 다양한 수학 함수들을 판다스 객체에 쉽게 적용할 수 있으며, 두 라이브러리 간에 높은 호환성을 갖고 있습니다. 넘파이의 수학 함수 넘파이(NumPy) 라이브러리는 다음과 같은 다양한 수학 함수를 지원합니다.  함수설명np.log자연로그(밑이 e)np.log2밑이 2인 로그np.log10밑이 10인 로그np.sin삼각함수 sinnp... 2024. 10. 20.
[pandas] 기존 열을 수정하면서 새로운 열도 추가하는 방법 기존 열을 조건에 따라 수정하면서 동시에 새로운 열도 추가하는 효율적인 연속 메서드(chain method)  질문 출처: https://stackoverflow.com/questions/78338987/more-efficient-way-to-replace-loc-method-with-chaining-in-pandas-dataframe-op 인풋 생성 import pandas as pddata = { 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma'], 'Age': [25, 30, 35, 40, 45], 'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']}df = pd.Dat.. 2024. 5. 22.
[pandas] 기존 데이터 프레임의 상위 2행을 멀티 인덱스로 설정하기 판다스에서 알아두면 유용한 질문과 답변입니다.  질문 출처: https://stackoverflow.com/questions/78382107/creating-a-multi-index-column-from-an-existing-dataframe 인풋 생성 # 인풋 데이터 프레임 생성 코드import pandas as pdimport numpy as npdata1 = [['symbol', 'appl', 'goog', 'None', 'msft', 'None', 'None', 'None', 'None'], ['date', 'close', 'close', 'volume', 'close', 'open', 'high', 'low'], ['1999-01-10', 100, 101, 10000.. 2024. 5. 22.
[pandas] 그룹의 순서를 유지하고 그룹 내에서 정렬하기 그룹의 순서를 유지하고 그룹 내에서 정렬하는 방법을 알아보겠습니다.  예제  import pandas as pddata1 = {'col1': ['A', 'A', 'A', 'B', 'B', 'B', 'B'], 'col2': ['가', '가', '나', '나', '나', '가', '가'], 'col3': [9, 7, 2, 8, 6, 1, 2]}df = pd.DataFrame(data1)  오늘의 목표   솔루션 중복값을 제거해 각 그룹을 넘버링한 후에 기존 df에 넘버링을 병합하고 정렬에 사용합니다.사용 후 정렬용 열인 sort 열은 삭제합니다.out = (df .merge((df.drop('col3', axis=1) .drop_duplic.. 2024. 5. 13.