Python 如何基于行值弹出数据帧的部分

Python 如何基于行值弹出数据帧的部分,python,pandas,Python,Pandas,我有一个超过300万个体哺乳动物(每行1个)的大型电子表格。我正试图按物种对这些个体进行分组,以便能够对所代表的每个物种进行单独的分析。 我目前正在使用下面的行为我可以分析的每个物种生成单独的数据帧 speciesFrames = [mammals.loc[mammals.scientificname == species] for species in speciesList] 这一过程需要相当长的时间,这是可以理解的。我想知道是否可以通过丢弃我已经在speciesFrames中复制的哺乳

我有一个超过300万个体哺乳动物(每行1个)的大型电子表格。我正试图按物种对这些个体进行分组,以便能够对所代表的每个物种进行单独的分析。 我目前正在使用下面的行为我可以分析的每个物种生成单独的数据帧

speciesFrames = [mammals.loc[mammals.scientificname == species] for species in speciesList]
这一过程需要相当长的时间,这是可以理解的。我想知道是否可以通过丢弃我已经在
speciesFrames
中复制的
哺乳动物
数据帧的部分来加速这一过程?如果是,我如何才能做到这一点

我尝试了以下几行的变体,但每一行都会导致一个单独的错误

speciesFrames=[物种列表中物种的哺乳动物.pop(哺乳动物.scientificname==物种)]

您可以尝试
groupby
,而无需在此处创建
规格列表

speciesFrames =[x for _,x in mammals.groupby('scientificname')]

您可以尝试
groupby
,而无需在此处创建
speciesList

speciesFrames =[x for _,x in mammals.groupby('scientificname')]

实际上,您可以使用groupby来实现这一点。还有一些想法/意见:1)。如果您的df那么大,也许您应该遍历组并在循环范围内执行分析,以节省内存。2) 也许你应该将你的物种解析为一个分类列,这将加快过滤速度。3) 同样,也许您应该使用物种作为multiundex的一部分,并使用'pd.indexlice'而不是grouping',实际上您可以使用groupby来实现这一点。还有一些想法/意见:1)。如果您的df那么大,也许您应该遍历组并在循环范围内执行分析,以节省内存。2) 也许你应该将你的物种解析为一个分类列,这将加快过滤速度。3) 同样,也许您应该使用物种作为multiundex的一部分,并使用'pd.indexlice'而不是分组`