문제:
데이터를 나타내는 레코드가 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!