无法获取numpy.ndarray内嵌套列表的真实元素数量,求解决方法
解决numpy数组嵌套列表的长度获取问题
你遇到的核心问题是:你的group_v2_list是一个仅包含单个列表元素的一维numpy数组,所以len(group_v2_list)和group_v2_list.size返回的是数组本身的元素个数(也就是1),而非内部列表里的元素数量。要拿到正确的长度,需要先取出数组里嵌套的那个列表,再计算它的长度。
这里给你几个可行的解决办法:
直接提取数组内的列表后计算长度:
# 取出数组中的第一个(也是唯一一个)元素,再求长度 correct_length = len(group_v2_list[0])这样就能得到你想要的2了。
如果是要批量处理DataFrame的整列数据:
可以用pandas的apply方法,对每行的listing元素做同样的提取操作:df['listing_length'] = df['listing'].apply(lambda x: len(x[0]))这会在DataFrame里新增一列,存储每行listing内部列表的长度。
溯源优化(可选):
你可以回头检查下当初提取listing列的代码,看看是不是因为聚合、分组之类的操作(比如groupby后的某种处理)导致结果被额外包裹成了数组套列表的结构。如果能从源头调整操作,避免不必要的嵌套,后续处理会更简洁。
内容的提问来源于stack exchange,提问作者Atihska
相关产品推荐
相关产品推荐

