Splitting Dataframe into Participant-Specific Dataframes
You have a large dataframe with data from 60 respondents and are seeking a way to divide it into individual dataframes for each participant. The unique code for each participant is stored in a variable called 'name.'
Initially, you attempted to use a custom function to append dataframes based on the 'name' variable, but the execution took an unusually long time.
A more efficient approach is to utilize slicing in Pandas DataFrame. The following code provides a solution:
import pandas as pd import numpy as np # Create sample data with a 'Names' column data = pd.DataFrame({'Names': ['Joe', 'John', 'Jasper', 'Jez'] * 4, 'Ob1': np.random.rand(16), 'Ob2': np.random.rand(16)}) # Create a unique list of names UniqueNames = data.Names.unique() # Create a dictionary to store the split dataframes DataFrameDict = {elem: pd.DataFrame() for elem in UniqueNames} # Iterate through UniqueNames and slice the original data for key in DataFrameDict.keys(): DataFrameDict[key] = data[data.Names == key] # Access a specific dataframe using its name specific_dataframe = DataFrameDict['Joe']
This approach swiftly creates individual dataframes for each participant, with the 'Names' column used for slicing. The resulting dataframes are organized within a dictionary, DataFrameDict, allowing for easy access.
The above is the detailed content of How Can I Efficiently Split a Pandas DataFrame into Participant-Specific DataFrames?. For more information, please follow other related articles on the PHP Chinese website!