Python循环处理嵌套DataFrame列表时返回元素全部重复如何修复?
错误定位
- 核心问题是
List_Selected.append(List_Selected_temp)行的缩进层级错误,当前该语句被包含在内层for j循环体中,而正确逻辑需要在完成单个一级元素下全部10个DataFrame的筛选后,再执行追加操作。 - 叠加影响:Python中列表属于可变对象,代码中每次追加到
List_Selected的是List_Selected_temp的引用而非独立副本,内层循环中修改List_Selected_temp内容时,所有已追加到List_Selected中的同源引用都会同步更新,最终所有元素都会和最后一次循环生成的内容完全一致。
修正后代码
List_Selected=[] for i in range(0,279): List_Selected_temp=[] for j in range(0,10): List_Selected_temp.append(List_DATA[i][j][(List_DATA[i][j]['A']>3) & (List_DATA[i][j]['A']<5)]) # 调整缩进至与内层for循环对齐,完成单组10个DataFrame筛选后再追加 List_Selected.append(List_Selected_temp)
内容的提问来源于stack exchange,提问作者the phoenix
相关产品推荐
相关产品推荐

