Pandas中SeriesGroupBy对象的.tail()方法无法正常工作求助
获取Pandas中最后一代个体数据的问题与解决方法
问题描述
现有一个形状为(40000,x)的Pandas DataFrame,需要提取serialized_multineat_genome字段的最后100个元素并转为列表。初始尝试的代码如下:
genomes = df[["generation_index", "serialized_multineat_genome"]].groupby(by="generation_index")["serialized_multineat_genome"] genomes_lst = genomes.tail(100).to_list()
但执行后发现genomes.tail(100).shape仍为(40000,),没有得到预期的100个元素。
补充背景:数据按generation_index(取值范围0到400)分组,每组对应100个个体,实际需求是获取最后一代的全部100个个体数据。
解决方案
最简方案是重构查询逻辑,直接定位到generation_index最大值对应的记录,代码如下:
genomes = df["serialized_multineat_genome"].loc[df["generation_index"] == df["generation_index"].max()].tolist()
内容的提问来源于stack exchange,提问作者Oliver
相关产品推荐
相关产品推荐

