>백엔드 개발 >파이썬 튜토리얼 >고유 식별자를 기반으로 대규모 DataFrame을 더 작은 하위 집합으로 효율적으로 분할하려면 어떻게 해야 합니까?

고유 식별자를 기반으로 대규모 DataFrame을 더 작은 하위 집합으로 효율적으로 분할하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-19 05:42:17862검색

How Can I Efficiently Split a Large DataFrame into Smaller Subsets Based on a Unique Identifier?

고유 식별자 열을 기준으로 대규모 데이터 프레임을 더 작은 하위 집합으로 분할

대규모 데이터 세트로 작업할 때는 여러 개의 데이터 프레임으로 나누는 것이 유리할 수 있습니다. 보다 효율적인 처리 및 분석을 위해 더 작고 관리 가능한 하위 집합입니다. 이 문서에서는 수백만 개의 행이 있는 대규모 데이터 프레임을 참가자에게 할당된 고유 코드마다 하나씩 여러 데이터 프레임으로 분할하는 특정 작업을 다룹니다.

제공된 코드 조각은 반복을 위해 for 루프를 사용하여 데이터 프레임을 분할하려고 시도합니다. 각 행을 살펴보고 참가자 코드가 현재 할당된 코드와 일치하는지 확인하세요. 이 접근 방식은 개념적으로는 정확하지만 실행이 비효율적이며 대규모 데이터 세트의 경우 과도한 런타임으로 이어질 수 있습니다.

대신 데이터 조작 기술을 통해 보다 효율적인 솔루션을 얻을 수 있습니다. Unique() 함수를 사용하여 고유 코드를 식별한 다음 filter() 메서드를 적용하여 각 코드와 연관된 행을 분리하면 별도의 데이터 프레임을 원활하게 생성할 수 있습니다.

아래 개선된 코드에서는 사전이 초기화됩니다. 각 고유 코드가 사전 키 역할을 하여 결과 데이터프레임을 저장합니다. filter() 메소드는 참여자 코드를 기반으로 행을 추출하는 데 사용되며 결과 데이터프레임은 사전에 추가됩니다.

import pandas as pd
import numpy as np

# Create a dataframe with random data and a 'Names' column
data = pd.DataFrame({'Names': ['Joe', 'John', 'Jasper', 'Jez'] * 4, 'Ob1': np.random.rand(16), 'Ob2': np.random.rand(16)})

# Extract unique participant codes
participant_codes = data.Names.unique()

# Initialize a dictionary to store dataframes
participant_dataframes = {code: pd.DataFrame() for code in participant_codes}

# Iterate through unique codes and create dataframes for each participant
for code in participant_codes:
    participant_dataframes[code] = data[data.Names == code]

# Print dictionary keys to verify participant dataframes
print(participant_dataframes.keys())

이 코드는 명시적 루프 대신 데이터 조작 기술을 활용하여 더 많은 기능을 제공합니다. 고유 식별자 열을 기반으로 대규모 데이터프레임을 분할하기 위한 효율적이고 확장 가능한 솔루션입니다.

위 내용은 고유 식별자를 기반으로 대규모 DataFrame을 더 작은 하위 집합으로 효율적으로 분할하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.