【发布时间】:2019-10-18 09:56:36
【问题描述】:
我有一个如下所示的数据框
df = pd.DataFrame({
'subject_id':[1,1,1,1,2,2,2,2,3,3,4,4,4,4,4],
'readings' : ['READ_1','READ_2','READ_1','READ_3','READ_1','READ_5','READ_6','READ_8','READ_10','READ_12','READ_11','READ_14','READ_09','READ_08','READ_07'],
'val' :[5,6,7,11,5,7,16,12,13,56,32,13,45,43,46],
})
我想做的是从中创建多个数据帧 (df1,df2)。在实时它不必是两个。根据我的数据大小,它可以是 10 或 20。 我问这个是因为我打算做并行处理。我会将一个巨大的 df 划分为多个小的数据帧并进行并行处理
例如df1 应包含 2(两个)科目的所有记录,df2 应包含其余 2 个科目的所有记录
试过了,但是不对
grouped = df.groupby('subject_id')
df1 = grouped.filter(lambda x: x['subject_id']== 2)
我希望我的输出是这样的
df1 - 包含 2 个主题的所有记录。我希望实时选择 100 个主题,并希望将他们的所有记录放在一个数据框中
df2 - 包含 2 个主题的所有记录。但在实时,我希望选择 100 个主题并将他们的所有记录放在一个数据框中
如您所见,基于主题的数据有明确的隔离,并且在多个数据框中不存在主题的数据。赞subject_id = 1 has data only in df1
更新帖子
【问题讨论】:
-
以下两个答案都很好,并提供了预期的输出。我不知道哪个最好。我只能标记一个并选择 Jezrael 的答案,因为它有更多的支持。尽管如此,两个答案都被赞成
标签: python python-3.x pandas dataframe pandas-groupby