问题:
您有一个巨大的数据帧,其中包含超过 100 万条表示数据的记录来自 60 名参与者的实验。每个参与者都有一个唯一的代码存储在数据帧的“name”变量中。您的目标是将数据帧分为 60 个较小的数据帧,每个参与者一个。
原始尝试:
您通过名为 splitframe 的自定义函数实现此目的的初始方法没有实现执行后一小时内不会产生结果。该函数旨在循环遍历数据帧,迭代地将行附加到较小的数据帧并将它们添加到列表中,直到识别出新的参与者,此时它将为后续参与者创建一个新的数据帧。
使用数据帧切片的解决方案:
您可以采用更有效的方法,而不是迭代地分割数据帧数据帧切片。操作方法如下:
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 的字典。字典中的每个键代表一个参与者名称,对应的值是一个 pandas 数据帧,其中包含该特定参与者的所有数据。您可以使用以下语法访问每个参与者的数据框:
participant_data = data_dict['ParticipantName']
以上是如何根据参与者 ID 有效地将大型 Pandas DataFrame 拆分为较小的 DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!