아미(아름다운미소)

주어진 조건에 따라 각각 100개의 행을 랜덤하게 추출하여 새로운 DataFrame을 만드는 예제 본문

랭귀지/pandas

주어진 조건에 따라 각각 100개의 행을 랜덤하게 추출하여 새로운 DataFrame을 만드는 예제

유키공 2025. 3. 7. 08:27
import pandas as pd
import numpy as np

# 예시 데이터 생성
data = {
    'a': ['aaa'] * 50 + ['bbb'] * 150 + ['ccc'] * 200 + ['ddd'] * 100,  # 행 수를 조정
    'b': ['bbb'] * 100 + ['ccc'] * 200 + ['aaa'] * 150 + ['bbb'] * 50
}
df = pd.DataFrame(data)

# 조건에 맞는 행을 랜덤하게 추출 (최대 100개)
def safe_sample(df, condition, n=100):
    filtered = df[condition]
    sample_size = min(len(filtered), n)  # 조건에 맞는 행 수와 n 중 작은 값 선택
    return filtered.sample(n=sample_size, random_state=1) if sample_size > 0 else pd.DataFrame()

# 각 조건에 맞는 행 추출
condition1 = safe_sample(df, df['a'] == 'aaa')
condition2 = safe_sample(df, df['a'] == 'bbb')
condition3 = safe_sample(df, df['b'] == 'bbb')
condition4 = safe_sample(df, df['b'] == 'ccc')

# 추출된 행들을 합쳐서 새로운 DataFrame 생성
new_df = pd.concat([condition1, condition2, condition3, condition4])

# 결과 출력
print(new_df)

'랭귀지 > pandas' 카테고리의 다른 글

백터화  (0) 2025.03.11
데이터프레임의 특정 열을 datetime으로 변환  (0) 2025.03.04
두 대이타 프레임비교  (0) 2025.02.26
일수를 datetime.timedelta 변환  (0) 2025.02.26
주차를 일자로변경  (0) 2025.02.25
Comments