[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] 기존 열을 수정하면서 새로운 열도 추가하는 방법
기존 열을 조건에 따라 수정하면서 동시에 새로운 열도 추가하는 효율적인 연속 메서드(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.