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

참가자 ID를 기반으로 대규모 Pandas DataFrame을 더 작은 DataFrame으로 효율적으로 분할하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-17 11:09:25671검색

How Can I Efficiently Split a Large Pandas DataFrame into Smaller DataFrames Based on Participant IDs?

큰 데이터 프레임을 작은 데이터 프레임으로 분할

문제:

데이터를 나타내는 레코드가 1백만 개가 넘는 대규모 데이터 프레임이 있습니다. 60명의 참가자를 대상으로 한 실험에서. 각 참가자는 데이터프레임의 'name' 변수에 저장된 고유 코드를 가지고 있습니다. 데이터프레임을 참가자당 하나씩 60개의 더 작은 데이터프레임으로 나누는 것이 목표입니다.

원래 시도:

splitframe이라는 사용자 정의 함수를 통해 이를 달성하려는 초기 접근 방식은 실패했습니다. 실행 후 1시간 이내에 결과가 나오지 않습니다. 이 함수는 데이터 프레임을 반복하면서 더 작은 데이터 프레임에 반복적으로 행을 추가하고 새 참가자가 식별될 때까지 목록에 추가하며 이후 참가자를 위한 새 데이터 프레임을 생성하도록 의도되었습니다.

데이터프레임 슬라이싱을 사용한 솔루션:

데이터프레임을 반복적으로 분할하는 대신 다음을 사용하여 보다 효율적인 접근 방식을 사용할 수 있습니다. 데이터프레임 슬라이싱. 방법은 다음과 같습니다.

import pandas as pd

# Create a list of unique participant names
unique_names = data['name'].unique()

# Initialize a dictionary to store the split dataframes
data_dict = {}

# Iterate over the unique names
for name in unique_names:
    # Create a new dataframe by slicing the original dataframe
    data_dict[name] = data[data['name'] == name]

결과:

이 코드는 data_dict라는 사전을 생성합니다. 사전의 각 키는 참가자 이름을 나타내며 해당 값은 해당 특정 참가자에 대한 모든 데이터가 포함된 팬더 데이터프레임입니다. 다음 구문을 사용하여 각 참가자의 데이터 프레임에 액세스할 수 있습니다.

participant_data = data_dict['ParticipantName']

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

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